孙鑫的第一个程序,为什么 调试没有错误,运行后却什么也没有啊?

问题描述

孙鑫的第一个程序,为什么 调试没有错误,运行后却什么也没有啊?

#include
#include
LRESULT CALLBACK WinsunProc(
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, // command line
int nCmdShow // show state
)
{

WNDCLASS wndcls;
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wndcls.hCursor=LoadCursor(NULL,IDC_ARROW);
wndcls.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=WinsunProc;
wndcls.lpszClassName="zhenjing";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW|CS_VREDRAW;
RegisterClass(&wndcls);

HWND hwnd;
hwnd=CreateWindow("weixin2013","甄嬛传",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);

MSG msg;

while(GetMessage(&msg,NULL,0,0))
{

        TranslateMessage(&msg);
        DispatchMessage(&msg);

}
return 0;

}
LRESULT CALLBACK WinsunProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
switch(uMsg)
{
case WM_CHAR:
char szChar[20];
sprintf(szChar,"char code is %d",wParam);
MessageBox(hwnd,szChar,"char",0);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,"mouse clicked","message",0);
HDC hdc;
hdc=GetDC(hwnd);
TextOut(hdc,0,50,"三只小熊",strlen("三只小熊"));
ReleaseDC(hwnd,hdc);
break;
case WM_PAINT:
HDC hDC;
PAINTSTRUCT ps;
hDC=BeginPaint(hwnd,&ps);
TextOut(hDC,0,0,"甄嬛传",strlen("甄嬛传"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"是否真的结束?","message",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}

解决方案

运行后安鼠标左键或者键盘任意字符试试

时间: 2024-08-03 13:33:50

孙鑫的第一个程序,为什么 调试没有错误,运行后却什么也没有啊?的相关文章

代码-PageOffice从2.0升级到3.0在从程序上调试出现错误

问题描述 PageOffice从2.0升级到3.0在从程序上调试出现错误 再打开在线Office是提示:当前PageOffice需要获取跟高版本的授权才能正常运行Error :0x00005..如果是PageOffice 2.0 升级到PageOffice 3.0,还需要修改两处代码: (1)修改调用了PageOffice的页面的aspx文件中的代码"Version=2.0.0.1"修改为"Version=3.0.0.1",如下: <%@ Register A

一个c++程序,编译没错。运行后出现错误 debug assertion failed

问题描述 一个c++程序,编译没错.运行后出现错误 debug assertion failed 具体错误如图 解决方案 VC++调程序出现如下错误: Debug Assertion Failed! Program: D:wyuStuddebugwyuStud.exe File: afx.inl Line:157 可能问题:1.野指针;2.内存泄露 解决方法: 1.看一看你的程序里是不是有ASSERT()或VERIFY()语句.这两个宏是用来测试它的参数是否为真的.出现你说的,这说明你的指针或表

《C++ 黑客编程揭秘与防范》——1.2 应用程序的调试

1.2 应用程序的调试 C++ 黑客编程揭秘与防范 在开发程序的过程中,除了编码以外还需要对程序进行调试,当编写的程序出现问题后,就要对程序进行调试.调试不是仅使用一个printf()或MessageBox()进行简单的输出来观察某个函数的返回值(虽然在调试的时候的确是对返回值观察较多),也不是对某个变量.某一时间的具体值的输出.调试是有专业的调试分析工具的,VC6不但提供代码编辑.代码编译.编译连接等功能,还提供了一个非常好用的调试工具.在编写完代码后,如果程序输出的结果是未知的,或者是没有预

《C++入门经典(第6版)》——第1章 编写第一个程序1.1 使用C++

第1章 编写第一个程序 C++入门经典(第6版) 本章介绍如下内容: C++是如何发明的以及发明它的原因: 如何寻找C++编译器: 如何创建并编译第一个程序: 如何链接并运行程序. 1.1 使用C++ 1979年,美国贝尔实验室的一位丹麦计算机科学家开始着手改进C编程语言.Bjarne Stroustrop在其个人网站上解释说,他希望有一种可以高效而优雅地编写程序的语言. 这也是很多人的愿望. Stroustrop将其作品取名为C++,几十年来,它一直占据着世界顶级编程语言的宝座.多年来,很多编

多线程-VC++孙鑫第十五课聊天室程序,如何有UDP改成TCP通信

问题描述 VC++孙鑫第十五课聊天室程序,如何有UDP改成TCP通信 看了孙鑫的第十五课:<多线程和聊天室程序的创建>,对其中的聊天室UDP程序中不断接收数据部分比较感兴趣,想把它改成TCP的版本,但是出现了不少问题不知道该怎么解决. 改动部分如下: 1.在InitSocket()中添加了listen和accept函数 2.由于TCP中连上之后发送数据需要使用accept获得的套接字,所以在OnInitDialog()中定义pRecvParam->sock=m_client; pRecv

孙鑫VC学习笔记:ActiveX 控件 .

孙鑫VC学习笔记:ActiveX 控件 作者:华仔 | 录入时间:2007-12-26 | 点击:313 次    打印此文章 | 字体:大 中 小 基本概念: 容器和服务器程序       容器应用程序时可以嵌入或链接对象的应用程序.Word 就是容器应用程序.服务器应用程序是创建对象并且当对象被双击时,可以被启动的应用程序.Excel 就是服务器应用程序.ActiveX 控件不能独立运行,它必须被嵌入容器应用程序中,和容器应用程序一起运行. -------------------------

关键路径-为什么第一个程序不能正常运行

问题描述 为什么第一个程序不能正常运行 /*******************************************************************************************/ //c语言关键路径第一种 #include #include typedef struct arcnode { ??? int adjvex;?? //活动末端 ??? struct arcnode *nextarc; ??? double info;??? //活动持续

用VS2013编译opengl编程宝典第五版的第一个画三角形的例子,编译后程序运行不了

问题描述 用VS2013编译opengl编程宝典第五版的第一个画三角形的例子,编译后程序运行不了 代码如下: #include #include #define FERRGLUT_STATIC #include #include GLBatch trianglebatch; GLShaderManager shadermanager; int main(int argc, char* argv[]) { void RenderScene(); void ChangeSize(int w, int

C++程序设计实践学材系列(10)——1.2.2 在Code::Blocks下编辑、运行第一个程序

回到系列文章的目录--[系列文章目录] 回到本章目录--[第1章目录] 1.2.2 在Code::Blocks下编辑.运行第一个程序 初学编程,第一个.每一次.第一步很多,享受这个全新的世界. 要编辑.运行程序C++程序,启动Code::Blocks,首先要建立一个C++项目.Code::Blocks可以做很多的事情,作为编程的初学者,从完成控制台应用(Console application)开始学编程. 现在,请下载并学习"微课件1.2 编辑.运行第一个程序". 下载:微课件1.2