首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

【博客大赛】VC++学习笔记二

【博客大赛】VC++学习笔记二

1
LRESULT long
的宏定义,指返回结果为long类型;


2
CALLBACK 为回调函数,一般用CALLBACK用声明窗口过程函数。系统通过窗口过程函数的地址(指针)来调用窗口过程函数,而不是函数名字,这点需要注意。

3
LPSTR : 'L'代表Long,'P'代表Pointer(指针)'STR'表示String,被定义成一个指向NULL结尾的32ANSI字符数组指针,跟LPWSTR是一样,不过后者是64位而已。

4
WNDCLASS: 在设计一个窗口,就必须指定窗口的特征。这个由WNDCLASS结构体来定义。这个结构体定义如下:
typedef struct _WNDCLASS {
    UINT       style;
                   //定义窗口的变化情况,如关闭缩小等,有近十种样式,常用的有

                                                 //CS_HREDRAW 宽度重新描绘,CS_VREDRAW 高度重新描绘,CS_NOCLOSE禁用关闭,CS_DBLCLKS 双击发送消息
    WNDPROC    lpfnWndProc; //前缀 lpfn 表示该成员是一个指向函数的长针,整个是指向窗口过程函数
    int        cbClExtra;          //类附加内存空间,一般初始化为0
    int        cbWndExtra;     //窗口附加内存空间
    HINSTANCE  hInstance; //指定包含窗口过程的程序的实例句柄
    HICON      hIcon;           //指定窗口类的图标句柄,必须是一个图标资源的句柄,若为NULL,则为默认图标
    HCURSOR    hCursor;   //指定窗口类的光标句柄,即设定鼠标形状。
    HBRUSH     hbrBackground; //handle to the class background brush,就是说指定窗口类的背景画刷句柄
    LPCTSTR    lpszMenuName; //一个以空终止的字符串,指定菜单资源的名字
    LPCTSTR    lpszClassName; //一个以空终止的字符串,指定窗口类的名字
} WNDCLASS, *PWNDCLASS;


5、举例如下:
//设计一个窗口类
WNDCLASS wndcls;
wndcls.cbClExtra = 0;
wndcls.cbWndExtra = 0;
wndcls.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);//黑色
wndcls.hCursor = LoadCursor(NULL,IDC_CROSS); //鼠标,默认是十字光标
wndcls.hIcon = LoadIcon(NULL,IDI_ERROR);  //手形图标
wndcls.hInstance = hInstance_1; //应用程序实例句柄为hInstance_1
wndcls.hpfnWndProc = WinSunProc;
wndcls.lpszClassName = "hello2013";
wndcls.lpszMenuName = NULL;
    wndcls.style = CS_HREDRAW| CS_VREDRAW;
RegisterClass(&wncls);

//篇后语——“飞言走笔”兄弟说我学得杂,呵呵,确实,学VC++不是我主攻硬件的方向,但是,我学它是利用晚上2个小时自己空闲的时间学的,白天要做其他重要的事情,因为我发现未来的工作中你多会一些,就会得到更宽的视野和发展空间。不是不专心,而是学无止境。硬件,还是我的最爱。
返回列表