VC++入门笔记:创建一个窗口

VC++入门笔记:创建一个窗口

在VC++中创建一个窗口需要做到如下4个操作步骤:
1、设计一个窗口类;
2、注册窗口类;
3、创建窗口;
4、显示及更新窗口;

typedef struct _WNDCLASS {
UINT style; //定义类的类型
WNDPROC lpfnWndProc; //用来接收一个函数指针,回调函数,用来处理该窗口类型消息的函数,这里用指针来索引指向
int cbClsExtra; //类的附加内存空间,通常为0
int cbWndExtra; //窗口的附加内存空间,通常为0
HANDLE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;//常量字符串类型,设定菜单的名字
LPCTSTR lpszClassName; //设定类的名字
} WNDCLASS;


一个字节 8位;

关于LoadIcon函数:
我们在MSDN的帮助文件中,查阅LoadIcon函数的帮助文档。

HICON LoadIcon(
HINSTANCE hInstance, // handle to application instance
LPCTSTR lpIconName // icon-name string or icon resource
// identifier
);

HINSTANCE hInstance,当一个标准的图标被加载的时候,这个必须为空。
第二个值可以用下面标准的值:
Value Description
IDI_APPLICATION Default application icon.
IDI_ASTERISK Same as IDI_INFORMATION.
IDI_ERROR Hand-shaped icon.
IDI_EXCLAMATION Same as IDI_WARNING.
IDI_HAND Same as IDI_ERROR.
IDI_INFORMATION Asterisk icon.
IDI_QUESTION Question mark icon.
IDI_WARNING Exclamation point icon.
IDI_WINLOGO Windows logo icon.

关于HBRUSH hbrBackground的解析(背景刷的颜色):

HGDIOBJ GetStockObject(
int fnObject // type of stock object
);

获得一个画刷的句柄,返回的是一个HGDIOBJ(画刷物体)。

wndcls.hbrBackground = (HBRUSH) GetStockObject(BLACK_BRUSH);

这里做了强制类型转换:(HBRUSH),因为hbrBackground必须还是一个HBRUSH类型。

RegisterClass(注册窗口类)

ATOM RegisterClass(
CONST WNDCLASS *lpWndClass // address of structure with class
// data
);


参数为窗口类结构体的指针。

关于CreateWindow函数:

HWND CreateWindow(
LPCTSTR lpClassName, // pointer to registered class name指针指向注册类的名字
LPCTSTR lpWindowName, // pointer to window name
DWORD dwStyle, // window style
int x, // horizontal position of window
int y, // vertical position of window
int nWidth, // window width
int nHeight, // window height
HWND hWndParent, // handle to parent or owner window
HMENU hMenu, // handle to menu or child-window identifier
HANDLE hInstance, // handle to application instance
LPVOID lpParam // pointer to window-creation data
);

获得是一个窗口句柄。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值