Windows编程,按老师一步一步写的运行的窗口不能关闭,不能移动,不能拉大拉小

yf1995823 2017-02-11 11:16:49
#include<windows.h>


LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM );
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int nCmdShow)
{
HWND hwnd;
MSG msg;//消息
WNDCLASS wc;
//1设计一个窗口类
wc.style=0;//窗口的样式
wc.lpfnWndProc=(WNDPROC)WndProc;//告诉这个窗口的窗口过程函数名称
wc.cbClsExtra=0;//窗口类额外的数据暂时不用考虑
wc.cbWndExtra=0;//窗口额外的数据暂时不用考虑
wc.hInstance=hInstance;//当前实例的实例句柄
wc.hIcon=LoadIcon(NULL,IDI_WINLOGO);//窗口的图标的样式
wc.hCursor=LoadCursor(NULL,IDC_ARROW);//鼠标的样式
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);//背景颜色
wc.lpszMenuName=NULL;//是否有菜单
wc.lpszClassName=TEXT("My WndClass");//窗口类的名字
//2注册窗口类
RegisterClass(&wc);
//3创建窗口
hwnd=CreateWindow(TEXT("My WndClass"),//窗口了类名字
TEXT("标题"),//创建的窗口标题
WS_OVERLAPPEDWINDOW,//窗口的样式
CW_USEDEFAULT,//窗口的x坐标
CW_USEDEFAULT,//窗口的y坐标
CW_USEDEFAULT,//窗口的长
CW_USEDEFAULT,//窗口的宽
NULL,//父窗口
NULL,//窗口菜单句柄
hInstance,//当前实例的实例句柄
NULL//暂时不用的参数
);
//4显示和更新窗口
ShowWindow(hwnd,nCmdShow);//显示窗口
UpdateWindow(hwnd);//更新窗口

//5消息循环
while(GetMessage(&msg,NULL,0,0));
{
TranslateMessage(&msg);//翻译消息
DispatchMessage(&msg);//转发消息到窗口过程WndProc
}

return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_PAINT:
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;

}
...全文
361 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_38703134 2017-05-11
  • 打赏
  • 举报
回复
我也是这个问题,多了个;号
赵4老师 2017-02-28
  • 打赏
  • 举报
回复
关于自己是否适合编程的很简单的测试: 在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案: A里面有10处以上文字或标点错误 B里面没有文字或标点错误并敢为此跟人打赌 C里面没有文字或标点错误并且字体和排版完全与原稿一致 D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感 A不适合编程(理由:打字准确度偏低、粗心大意) B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念) C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证) D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!) 如果想从A变成B的话,到我的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”
yf1995823 2017-02-28
  • 打赏
  • 举报
回复
引用 2 楼 phelps_pass的回复:
消息循环有问题,陷入了死循环,去掉后面分号即可 while(GetMessage(&msg,NULL,0,0)); //分号!!!!!! { TranslateMessage(&msg);//翻译消息 DispatchMessage(&msg);//转发消息到窗口过程WndProc }
谢谢!就是这个问题!
phelps_pass 2017-02-13
  • 打赏
  • 举报
回复
消息循环有问题,陷入了死循环,去掉后面分号即可 while(GetMessage(&msg,NULL,0,0)); //分号!!!!!! { TranslateMessage(&msg);//翻译消息 DispatchMessage(&msg);//转发消息到窗口过程WndProc }
ID870177103 2017-02-12
  • 打赏
  • 举报
回复
没处理WM_PAINT

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧