如何知道WM_DEVICECHANGE
到達?捕捉WM_DEVICECHANGE
WndProc
被覆蓋。我收到了大量的消息,但沒有一個是WM_DEVICECHANGE
。 RegisterDeviceNotification
使連接器抱怨它無法找到該功能!所以我被困在這個巫術魔術中。請幫助。
P.S .:當然,我一直在使用google搜索和堆棧(大聲笑)所有這些東西大約8個小時。
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
LPTSTR lolclassname = "lolclass";
WNDCLASS lolclass;
HWND lolwindow;
MSG lolmsg;
UINT msgstatus;
lolclass.style = CS_VREDRAW;
lolclass.lpfnWndProc = &lol_wnd_proc;
lolclass.cbClsExtra = 0;
lolclass.cbWndExtra = 0;
lolclass.hInstance = hInstance;
lolclass.hIcon = NULL;
lolclass.hCursor = NULL;
lolclass.hbrBackground = (HBRUSH)(COLOR_BACKGROUND + 1);
lolclass.lpszMenuName = NULL;
lolclass.lpszClassName = lolclassname;
if(!RegisterClass(&lolclass)) fail("RegisterClassEx");
lolwindow = CreateWindow("lolclass", NULL, WS_MINIMIZE, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
HWND_MESSAGE, NULL, hInstance, NULL);
if(lolwindow == NULL) fail("CreateWindowEx");
/*ShowWindow(lolwindow, nCmdShow);
UpdateWindow(lolwindow);*/
do {
/* if(!SetWindowPos(lolwindow, HWND_TOPMOST, 1, 1, 1, 1,
SWP_HIDEWINDOW))
fail("SetWindowPos");*/
msgstatus = GetMessage(&lolmsg, lolwindow, 0, 0);
if(!msgstatus) break;
if(msgstatus == - 1) fail("GetMessage");
TranslateMessage(&lolmsg);
DispatchMessage(&lolmsg);
Sleep(1000);
} while(1);
return lolmsg.wParam;
}
lol_wnd_pro
c的執行,但從來沒有當它應該(在課程的設備變化,我是清楚了嗎?)
我想描述不清晰。如果可能,請重新組織並顯示一些代碼 – 2012-04-16 04:50:44
爲什麼您嘗試自己編寫樣板代碼,而不是使用廣泛分佈的樣本之一? – 2012-04-16 08:43:52
*是*前綴與'大聲笑'的一切問題。即使是操作系統也不會認真對待你。大聲笑。 – 2012-04-16 11:03:49