注册 登录
编程论坛 C++教室

我这有一个窗口创建代码我想让他出现菜单栏

yangjunji 发布于 2011-02-26 14:27, 502 次点击
程序代码:
#include <windows.h>

//回调函数
LRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam)
{
    switch(Msg)//处理消息过程,什么是消息,下节再讲
    {
    case WM_DESTROY://响应鼠标单击关闭按钮事件
        PostQuitMessage(0);//退出消息队列,至于什么是消息队列,下节说
        return 0;//退出函数
    }
    return DefWindowProc(hWnd,Msg,wParam,lParam);
}

//主函数
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
    char *cName = "myWindow";
    WNDCLASSEX wc;
    HWND hWnd;
    MSG Msg;

    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//通过函数来设置一个白色的背景,这里大家设置为NULL看看,会很有趣的
    wc.hCursor = NULL;//不设置
    wc.hIcon = NULL;//不设置
    wc.hIconSm = NULL;//不设置
    wc.hInstance = hInstance;//当前程序的句柄,hInstance是有系统给传递的
    wc.lpfnWndProc = WinProc;//窗口处理过程的回调函数。
    wc.lpszClassName =(LPSTR)cName;//窗口类的名字。
    wc.lpszMenuName = NULL;//目录名,不设置
    wc.style = CS_HREDRAW | CS_VREDRAW;


    RegisterClassEx(&wc);//在系统中注册

    hWnd = CreateWindowEx(WS_EX_CLIENTEDGE,cName,"我的第一个窗口",WS_OVERLAPPEDWINDOW,
        200,100,600,400,NULL,NULL,hInstance,NULL);//创建窗口,窗口标题为"我的窗口我喜欢"
    if(hWnd == NULL)
    {//容错处理
        MessageBox(NULL,"There's an Error","Error Title",MB_ICONEXCLAMATION|MB_OK);
        return 0;
    }
    ShowWindow(hWnd,nShowCmd);//显示窗口
    UpdateWindow(hWnd);

    //下面是对消息的循环处理,大家先不必管这些,下节课我会细说的
    while(GetMessage(&Msg,NULL,0,0))
    {
        TranslateMessage(&Msg);//翻译消息
        DispatchMessage(&Msg);//分派消息
    }
    return Msg.message;
}
该如何设置,请高手指点。
2 回复
#2
yangjunji2011-02-26 14:29
本人刚接触window编程不是太懂
#3
rjsp2011-02-26 15:22
wc.lpszMenuName = MAKEINTRESOURCE(你的菜单资源的ID);

我建议你直接生成一个Win32程序,里面什么都有了,然后在这个工程的基础上修改。
1