| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 708 人关注过本帖
标题:windows.h 程序窗口创建后,就没有反应了,是不是MSG有问题
只看楼主 加入收藏
pcyanlun
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-10-28
收藏
 问题点数:0 回复次数:2 
windows.h 程序窗口创建后,就没有反应了,是不是MSG有问题
#include <iostream.h>
#include <windows.h>


LRESULT CALLBACK WinMainProc(
  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 wndclass;
    wndclass.cbClsExtra=0;
    wndclass.cbWndExtra=0;
    wndclass.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
    wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
    wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    wndclass.hInstance=hInstance;
    wndclass.lpfnWndProc=WinMainProc;
    wndclass.lpszClassName="WinMain";
    wndclass.lpszMenuName=NULL;
    wndclass.style=CS_HREDRAW | CS_VREDRAW;



    RegisterClass(&wndclass);

    HWND hWnd;
    hWnd=CreateWindow("WinMain","颜从",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,
        CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);

    ShowWindow(hWnd,SW_SHOWNORMAL);
    UpdateWindow(hWnd);

    MSG msg;
    while(GetMessage(&msg,hWnd,0,0));
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return 0;
}
LRESULT CALLBACK WinMainProc(
  HWND hwnd,      // handle to window
  UINT uMsg,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
)
{
    switch(uMsg)
    {
    case WM_LBUTTONDOWN:
        MessageBox(NULL,"DDDD","BBBBBB",0);
        break;
    case WM_CLOSE:
        if(IDYES==MessageBox(NULL,"dddddddd","ddddddd",0));
        DestroyWindow(hwnd);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hwnd,uMsg,wParam,lParam);
    }
    return 0;
}
搜索更多相关主题的帖子: windows MSG 窗口 
2008-03-15 12:48
余来
Rank: 6Rank: 6
等 级:贵宾
威 望:26
帖 子:956
专家分:18
注 册:2006-8-13
收藏
得分:0 
CreateWindow错误吧,窗口的长和宽不能用CW_USEDEFAULT来代替,需要具体的数子,如400*300之类的。。。

2008-03-15 14:17
pcyanlun
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-10-28
收藏
得分:0 
我自己知道了
问题在于 while(GetMessage(&msg,hWnd,0,0));改成while(GetMessage(&msg,NULL,0,0))
就可以了,这个里,从所有的消息里得到WM_QUIT消息,不能从hWnd里,窗口都没有了,所以就不行
2008-03-15 18:31
快速回复:windows.h 程序窗口创建后,就没有反应了,是不是MSG有问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016642 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved