15,473
社区成员




#include "stdafx.h"
#include <Windows.h>
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_DEVICECHANGE:
printf("USB Device!\r\n");
break;
default:
break;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
TCHAR szClassName[] = _T("MyApp");
WNDCLASS wndcls = {0};
wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndcls.hCursor = (HCURSOR)LoadCursor(NULL, IDC_ARROW);
wndcls.hIcon = (HICON)LoadIcon(NULL, IDI_APPLICATION);
wndcls.lpfnWndProc = WndProc;
wndcls.lpszClassName = szClassName;
if(!RegisterClass(&wndcls))
{
printf("RegisterClass Failed!\r\n");
return 0;
}
HWND hWnd = CreateWindow(szClassName, szClassName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, NULL, NULL);
if(NULL == hWnd)
{
printf("CreateWindow Failed!\r\n");
return 0;
}
ShowWindow(hWnd, SW_HIDE);
UpdateWindow(hWnd);
MSG msg;
while(GetMessage(&msg, NULL, NULL, NULL))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
int main( int argc, char* argv[] )
LRESULT CALLBACK ProcWinMain(HWND, UINT, WPARAM, LPARAM);
……
wnd.lpfnWndProc = ProcWinMain;
……
LRESULT CALLBACK ProcWinMain(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if(uMsg == 我的消息)
{
//处理我要的消息的事件
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}