如何创建一个丰富的用户界面Windows应用程序,例如Photo Shop.
我正在寻找带有C#的WinForms的干净MVC教程.(不是 ASP.NET MVC.)
成为Windows平台上的新手; 大多数MSDN和互联网教程基本上都将所有内容都放入Form类中.进一步的默认事件在表单内部处理,而不是将事件发送到控件/模型,而控制/模型又改变了视图的状态.
或者Windows应用程序的首选方法是别的吗?
c# model-view-controller user-interface methodology winforms
我想增强一个应用程序,但没有3:e party API可用.所以基本上这个想法是在应用程序窗口之上绘制图形/文本.
z order,clip和将鼠标点击指向我的应用程序或其他应用程序时出现问题.
这样做的优雅方式是什么?
这里的示例图像.这是一个交易应用程序,我的应用程序想要在交易应用程序的窗口中添加额外的信息.[URL = http://img104.imageshack.us/my.php?image=windowontop.png] [/ URL ]
我试图挂钩例如记事本没有成功.制作全局钩子似乎工作正常.
在XP SP2上测试.
编辑:修改后的代码现在有效.
MyDLL代码
#include <windows.h>
#include <iostream>
#include <stdio.h>
HINSTANCE hinst;
#pragma data_seg(".shared")
HHOOK hhk;
#pragma data_seg()
//#pragma comment(linker, "/SECTION:.shared,RWS") compiler error in VC++ 2008 express
LRESULT CALLBACK wireKeyboardProc(int code, WPARAM wParam,LPARAM lParam) {
if (code < 0) {
return CallNextHookEx(0, code, wParam, lParam);
}
Beep(1000, 20);
return CallNextHookEx(hhk, code, wParam, lParam);
}
extern "C" __declspec(dllexport) void install(unsigned long threadID) {
hhk = SetWindowsHookEx(WH_KEYBOARD, wireKeyboardProc, hinst, threadID);
}
extern "C" __declspec(dllexport) void uninstall() {
UnhookWindowsHookEx(hhk);
}
BOOL WINAPI …Run Code Online (Sandbox Code Playgroud) 如何使用Spring JDBC temple查询double?
例如:
public double getAverageScore() {
return jdbctemplate.queryFor???("select avg(score) from test");
}
Run Code Online (Sandbox Code Playgroud)
有queryForInt和queryForLong,但没有queryForDouble
基本上我想创建一个坚如磐石的服务器.
while (keepRunning.get()) {
try {
Socket clientSocket = serverSocket.accept();
... spawn a new thread to handle the client ...
} catch (IOException e) {
e.printStackTrace();
// NOW WHAT?
}
}
Run Code Online (Sandbox Code Playgroud)
在IOException块中,该怎么办?Server套接字是否有故障,因此需要重新创建?例如,等待几秒钟然后
serverSocket = ServerSocketFactory.getDefault().createServerSocket(MY_PORT);
Run Code Online (Sandbox Code Playgroud)
但是,如果服务器套接字仍然正常,那么关闭它并终止仍在通信的所有先前接受的连接是很可惜的.
编辑:经过一些回答,这里我尝试处理IOException.实现是否可以保证服务器保持正常运行,只在必要时才重新创建服务器套接字?
while (keepRunning.get()) {
try {
Socket clientSocket = serverSocket.accept();
... spawn a new thread to handle the client ...
bindExceptionCounter = 0;
} catch (IOException e) {
e.printStackTrace();
recreateServerSocket();
}
}
private void recreateServerSocket() {
while (keepRunning) {
try {
logger.info("Try to re-create …Run Code Online (Sandbox Code Playgroud) 在我的情况下,我们需要在开发软件时亲自到办公室.
我正在寻找帮助来争论为什么软件开发人员应该拥有一台专用的物理软件开发计算机,以提高工作效率和成本效益.作为一个商业案例,我们认为生产率将下降25%,但我觉得现实可能接近50%.这个商业案例并没有被真正接受,我觉得很难辩护.
背景信息:我在一家公司工作,主要业务不是开发软件.
因为安全性/稳定性是如此重要的优先级,所以非生产系统/应用程序部署在物理上独立的网络中.
为了访问测试网络,公司已经创建了一个标准策略,该策略规定只能通过远程桌面客户端访问测试网络.实际上,从一台生产计算机,人们可以将远程桌面客户端打开到位于测试网络中的虚拟计算机.在虚拟计算机的远程桌面上,可以访问/运行/安装所有开发工具,如Eclipse IDE.
另一种解决方案是拥有一台专用的物理计算机,它只在物理上连接到测试网络.
公司都提供远程桌面和物理访问解决方案.
远程客户端没有任何技术问题,只是没有最佳和坦率地去激励.请记住,我们在办公室.现在有了新的策略,计划是删除连接到测试网络的物理计算机.
进一步可以注意到我们正在谈论约.2000名员工中有50台计算机.因此额外预算相对较小.这更多是关于政策而不是成本.
感谢帮助
代码一直在运作.不知怎的,我设法让Visual C++ Express没有达到最终return语句的断点,它似乎永远运行.
在下面的示例代码中,EnumWindows无限枚举.如何在枚举所有窗口后使其停止.
#include <Windows.h>
BOOL CALLBACK EnumWindowsProc(HWND hWnd, long lParam) {
TCHAR buff[255];
if (IsWindowVisible(hWnd)) {
GetWindowText(hWnd, (LPWSTR) buff, 254);
printf("%S\n", buff);
}
return TRUE;
}
int _tmain(int argc, _TCHAR* argv[]) {
EnumWindows(EnumWindowsProc, 0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)