资源

1.

// first fill in the window class stucture
    winclass.cbSize        = sizeof(WNDCLASSEX);
    winclass.style         = CS_HREDRAW | CS_VREDRAW;
    winclass.lpfnWndProc   = WindowProc;
    winclass.cbClsExtra    = 0;
    winclass.cbWndExtra    = 0;
    winclass.hInstance     = hInstance;
    //winclass.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
    winclass.hIcon         = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
    winclass.hCursor       = LoadCursor(NULL, IDC_ARROW);
    winclass.hbrBackground = (HBRUSH)GetStockObject (WHITE_BRUSH);
    //winclass.lpszMenuName  = NULL;
    winclass.lpszMenuName  = MAKEINTRESOURCE(IDR_MENU1);
    winclass.lpszClassName = g_szWindowClassName;
    winclass.hIconSm       = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON2));
    //winclass.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);

 

当用户单击菜单的某个标题时,WindowProc 会收到一个消息。需要拦截的消息是WM_COMMAND。这条消息的lParam包含了发出该条消息的父窗口的句柄,而wParam包含了被单击的菜单项的ID。

::技巧::如果使用Develop Studio,并且安装了Spy++,就可以在应用程序运行时用它来观察所有产生并进入消息队列的消息。消息产生不仅多而且非常快,尤其是在移动鼠标时更明显。