try to use CreateWindowEx

解决方案 »

  1.   

    #include <windows.h>
    #include <stdio.h>//申明回调函数
    LRESULT CALLBACK funFrmMain(
      HWND hwnd,      // handle to window
      UINT uMsg,      // message identifier
      WPARAM wParam,  // first message parameter
      LPARAM lParam   // second message parameter
    );//主程序
    int WINAPI WinMain(
      HINSTANCE hInstance,  // handle to current instance
      HINSTANCE hPrevInstance,  // handle to previous instance
      LPSTR lpCmdLine,      // pointer to command line
      int nCmdShow          // show state of window
    )
    {
    //定义一个窗口类的实例
    WNDCLASS frmMain;
    //定义窗口句柄
    HWND frmMainHwnd; //为窗口类的实例各成员赋值
    //窗口类附加参数
    frmMain.cbClsExtra = 0;
    //窗口附加参数
    frmMain.cbWndExtra = 0;
    //设置窗口背景(或者称为选择窗口画刷)
    frmMain.hbrBackground =(HBRUSH)GetStockObject(BLACK_BRUSH);
    //窗口鼠标指针
    frmMain.hCursor = LoadCursor(NULL,IDC_ARROW);
    //设置窗口图标
    frmMain.hIcon = LoadIcon(NULL,IDI_APPLICATION);
    //为窗口句柄赋值
    frmMain.hInstance = hInstance;
    //设置窗口回调函数
    frmMain.lpfnWndProc = funFrmMain;
    //设置此窗口类的注册名
    frmMain.lpszClassName = "chenming";
    //设置窗口菜单名
    frmMain.lpszMenuName = NULL;
    //设置窗口风格
    frmMain.style = CS_HREDRAW | CS_VREDRAW; //注册上面编写的窗口类
    if (!RegisterClass(&frmMain)) return FALSE; //创建窗口 frmMainHwnd=CreateWindow("chenming",
    "ll",
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    NULL,
    NULL,
    hInstance,
    NULL);
        //if (NULL==frmMainHwnd) return FALSE;
    //显示窗口
    int j=ShowWindow(frmMainHwnd,nCmdShow);    //刷新窗口
    UpdateWindow(frmMainHwnd);    //接下来处理消息
        //定义消息传递对象
    MSG msg; //用一个循环不断的进行消息获取
    while(GetMessage(&msg,NULL,0,0))
    {
    //进行消息转换
    TranslateMessage(&msg);
    //将消息交给回调函数处理
    DispatchMessage(&msg);
    } //退出程序
    return msg.wParam;
    }//回调函数处理
    LRESULT CALLBACK funFrmMain(
      HWND hwnd,      // handle to window
      UINT uMsg,      // message identifier
      WPARAM wParam,  // first message parameter
      LPARAM lParam   // second message parameter
    )
    {
    //窗口绘制事件
    switch(uMsg)
    {
    case WM_PAINT:
    HDC hdc;
    PAINTSTRUCT ps;
    //取得绘图设备索引值
    hdc=BeginPaint(hwnd,&ps);
            //在窗口上输出文字
    TextOut(hdc,0,0,"第一个SDK程序",strlen("第一个SDK程序"));
    //结束绘图
    EndPaint(hwnd,&ps);
    break;
        
    case WM_LBUTTONDBLCLK:
        MessageBox(hwnd,"鼠标点击","Message",MB_OK);
    break; case WM_CLOSE:
    if(IDYES==MessageBox(hwnd,"是否真的退出?","Message",MB_YESNO))
    {
    DestroyWindow(hwnd);
    }
    break; case WM_DESTROY:
    PostQuitMessage(0);
    break;
    } return DefWindowProc (hwnd, uMsg, wParam, lParam) ;
    }