CreateWindow的出错解决
CreateWindow返回NULL,而且GetLastError()也返回0,代码如下:
WNDCLASSEX wc =
{
sizeof( WNDCLASSEX ), CS_CLASSDC, NULL/*gWndProc 注意这里直接把它写成 NULL ,贪方便啊.*/,
0L, 0L,
GetModuleHandle( NULL ), NULL, NULL, NULL, NULL,
classname, NULL
};
RegisterClassEx( &wc );
HWND hWnd = CreateWindow( classname, wndname,
WS_DLGFRAME | WS_SYSMENU, 0, 0,m_ScreenWidth, m_ScreenHeight,
::GetDesktopWindow(), NULL,wc.hInstance, NULL );
- #include <windows.h>
- #include <stdio.h>
- 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=;
- wndcls.cbWndExtra=;
- wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
- wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
- wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
- wndcls.hInstance=hInstance;
- wndcls.lpfnWndProc=WinSunProc;
- wndcls.lpszClassName="sunxin2006";
- wndcls.lpszMenuName=NULL;
- wndcls.style=CS_HREDRAW | CS_VREDRAW;
- RegisterClass(&wndcls);
- HWND hwnd;
- hwnd=CreateWindow("sunxin2006","http://www.sunxin.org",WS_OVERLAPPEDWINDOW,
- ,,,,NULL,NULL,hInstance,NULL);
- ShowWindow(hwnd,SW_SHOWNORMAL);
- UpdateWindow(hwnd);
- MSG msg;
- while(GetMessage(&msg,NULL,,))
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- return msg.wParam;
- }
- 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[];
- sprintf(szChar,"char code is %d",wParam);
- MessageBox(hwnd,szChar,"char",);
- break;
- case WM_LBUTTONDOWN:
- MessageBox(hwnd,"mouse clicked","message",);
- HDC hdc;
- hdc=GetDC(hwnd);
- TextOut(hdc,,,"程序员之家",strlen("程序员之家"));
- //ReleaseDC(hwnd,hdc);
- break;
- case WM_PAINT:
- HDC hDC;
- PAINTSTRUCT ps;
- hDC=BeginPaint(hwnd,&ps);
- TextOut(hDC,,,"http://www.sunxin.org",strlen("http://www.sunxin.org"));
- EndPaint(hwnd,&ps);
- break;
- case WM_CLOSE:
- if(IDYES==MessageBox(hwnd,"是否真的结束?","message",MB_YESNO))
- {
- DestroyWindow(hwnd);
- }
- break;
- case WM_DESTROY:
- PostQuitMessage();
- break;
- default:
- return DefWindowProc(hwnd,uMsg,wParam,lParam);
- }
- return ;
- }
CreateWindow的出错解决的更多相关文章
- make menuconfig出错解决方法
make menuconfig出错解决方法 2011-06-11 22:22:49 分类: 系统运维 错误现象: make menuconfig In file included from scri ...
- vs连接mysql出错解决方法
vs连接mysql出错解决方法 先按以下的步骤配置一下: **- (1)打开VC6.0 工具栏Tools菜单下的Options选项.在Directories的标签页中右边的"Show dir ...
- paip.vs2010 或.net 4.0安装出错解决大法.
paip.vs2010 或.net 4.0安装出错解决大法. 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.cs ...
- 黄聪:C#使用Application.Restart重启程序出错解决办法
调用 Application.Restart重启程序出错 解决办法,就是给程序的.exe文件,加上下面的设置
- $ sudo python -m pip install pylint 出错解决方法
问题:在unbuntu执行$ sudo python -m pip install pylint出错解决方法支行以下命令sudo pip install pylint==1.9.3这样roboware ...
- npm中npm install 始终出错解决办法
npm中npm install 始终出错解决办法 错误信息: C:\Windows\System32>npm install -g gulp npm ERR! Windows_NT 6.1.76 ...
- $ gulp watch 运行出错解决方法
$ gulp watch 运行出错解决方法 $ gulp watch 如果你出现了如下报错信息: gulp-notify: [Laravel Elixir] Browserify Fail ...
- 安装openstack同步数据库时出错解决方法
错误提示:(2003, "Can't connect to MySQL server on 'controller' ([Errno -2] Name or service not know ...
- ARM64平台编译stream、netperf出错解决办法 解决办法:指定编译平台为alpha [root@localhost netperf-2.6.0]# ./configure –build=alpha
ARM64平台编译stream.netperf出错解决办法 http://ilinuxkernel.com/?p=1738 stream编译出错信息: [root@localhost stream]# ...
随机推荐
- 【转】20条Linux命令面试问答
问:1 如何查看当前的Linux服务器的运行级别? 答: ‘who -r’ 和 ‘runlevel’ 命令可以用来查看当前的Linux服务器的运行级别. 问:2 如何查看Linux的默认网关? 答: ...
- IOS中APP开发常用的一些接口
免费的API接口: 1.聚合数据,上面有手机归属地查询等: 2.百度API store:上面有很多免费的接口,可以使用在自己的app中: 3.环信:提供一些用户交互的一些场景等,可以用来做即时通讯软件
- SQLite高级:一库建多表,封装类
package eoe.database; import android.content.Context; import android.database.sqlite.SQLiteDatabase; ...
- php __set()和__get()函数
<?php /* 总结: 1. 从一个难以访问的属性读取数据的时候 __get() 方法被调用 2. 向一个难以访问的属性赋值的时候 __set() 方法被调用 3. 难以访问包括:(1)私有属 ...
- dubbo框架揭秘之服务引用
ApplicationConfig config = new ApplicationConfig("hello-worldp"); RegistryConfig reg = new ...
- jQuery 的 ready 函数是如何工作的?(源码分析)
如果你使用过 jQuery , 就必然使用过 ready 函数,它用来注册当页面准备好之后可以执行的函数. 问题来啦,我们的页面什么时候准备好了呢? 1. onload 事件 最基本的处理方式就是页面 ...
- WMWARE下/sbin/scsi_id 返回值为空
[root@HE1 ~]# /sbin/scsi_id -g -u /dev/sdb 第一种是从VMWARE层面去解决,用文本编辑器修改vmx文件,在vmx文件中任意位置(通常在最后)添加如下行: d ...
- storm遇到问题汇总
http://www.reader8.cn/jiaocheng/20131023/2139887.html 错误1:在windows下运行ExclamationTopology或者WordCountT ...
- lufylegend库 鼠标事件 循环事件 键盘事件
lufylegend库 鼠标事件 循环事件 键盘事件 <!DOCTYPE html> <html lang="en"> <head> <m ...
- .Net多线程编程—使用Visual Studio 2012进行调试
1 相关概念 1)栈帧 C语言中,每个栈帧对应着一个未运行完的函数.栈帧中保存了该函数的返回地址和局部变量. 栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构. 2)单步执行与单步函 ...