所谓句柄其实是外国话,就是编号的意思。‘
获得了桌面的句柄后,就可以在桌面上建窗口了,比如使用MessageBox()在桌面上建一个对话框。
桌面也是一个窗口,如何得到它的句柄呢?用下面的过句就可以
HWND hd = GetDesktopWindow();
窗口的句柄一般使用HWND。有了窗口的句柄后,就可以对这个窗口进行操作了,当然能在这个窗口的上面再加一个窗口呢!
以下的程序在vs2019环境下通过:
#include "windows.h"
#include <iostream>
using namespace std;
int main()
{
HWND hd = GetDesktopWindow();//获取桌面窗口的句柄
cout << "中华人民共和国";
MessageBoxW(hd,L"对话框中的内容:中华人民共和国",L"标题",MB_OK);
MessageBox(hd, L"中国人民解放军", L"biaoti", MB_OK);
rewind(stdin);
cin.get();
return 0;
}
MessageBoxW和MessageBox的区别是:前者只对Unicode,后者即对Unicode,也对ANSI编码,因为我使用的是vs2019,它默认的是Unicode,所以可以用MesssageBoxW。
用MessageBox也可以,只不过要对字符串用L宏命令进行转换。
在MessageBox和MessageBoxW中都用到了窗口句柄hd,表示我的MessageBox是建在这个窗口之上,与它相关联的。
金庭波
2019/8/8号9:00