当前位置:开发平台->Windows ->Windows零基础入门:4.5 获取窗口类ID与注册窗口类返回的ID相互验证

原创版权标志Windows零基础入门:4.5 获取窗口类ID与注册窗口类返回的ID相互验证

作者:codexia  发表时间:2015-12-5  阅读:
[摘要] 本节课就是验证通过注册窗口类函数RegisterClass返回的窗口类ID与GetClassLong函数返回的窗口类ID是否一致,以进一步巩固和确认注册窗口类的知识。在这个验证过程中,我们会遇见一个问题,平时大家不会关注,所以特别在这里展示一下。
   获取窗口类ID的方法,在《Windows零基础入门:4.2 获取窗口类信息之查询窗口类名称ID》已经讲述了。代码如下:
WORD wClsID = (WORD)GetClassLong(hwnd,GCW_ATOM);//WORD和ATOM类型一样
    而注册窗口类RegisterClass返回的就是这个窗口类ID,代码如下:
ATOM Class = RegisterClass(&wndClass);// - ATOM类型就是WORD类型
    而我们平常只检测RegisterClass返回值是否为NULL,如果为NULL则表示注册窗口类失败,否则就返回一个非零值,这个非零值其实就是注册成功的窗口类ID。
    实际上,注册返回的窗口类ID就是窗口类表中唯一标识窗口类的ID,与GetClassLong获取的应该一致。不过为了严谨,我们还是要写代码来验证。
    以下是完整的验证代码:
#include "windows.h"
#include 
LRESULT CALLBACK WinProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
 return 0;
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrev,LPSTR lpCmd,int iShow)
{
 TCHAR ClassName[] = _T("MyClass");
 TCHAR title[] = _T("title");
 WNDCLASS wndClass;
 wndClass.cbClsExtra=0;
 wndClass.cbWndExtra=0;
 wndClass.hbrBackground= (...【登录后阅读更多内容】
文章来源:C++技术网原创文章版权为网站和作者共同所有,会员文章禁止转载。非会员文章转载做好本文超链接即表示授权转载。通过文章下面的分享按钮可以自由分享所有文章。


  • he_ji001    2016/3/9 15:52:57回复
    TextOut 输出左边 是int SetScrollPos 设置也是int 怎么才能上十万 百万 codexia: 回复 he_ji001 说:有一点不明白你的意思。不过,SetScrollPos设置的是百分比,设置的值只是范围的一个,十万百万没有意义。【回复】he_ji001: 回复 codexia说:我的意思是SetScrollRange 范围是int的 能翻页6万多页。TextOut输出文字 坐标x,y也是int 感觉显示有限。只能用其他方法。有l扩展long吗【回复】he_ji001: 回复 codexia说:谢谢的文章很好。学习了。能给我你的email吗【回复】

返回顶部

在线提问
问题标题:
问题描述:(简陋的描述会导致问题被最后回答、没有针对性回答甚至无法解答。请确保问题描述的足够清楚。)