欢迎光临南昌笑劳网络科技有限公司,我们是一家专注中小型企业营销推广服务的公司!

咨询热线:400 76543 55
南昌笑劳网络科技有限公司
最新资讯News
南昌笑劳网络科技有限公司

Win32 SDK基础(七)之如何创建一个窗口的子窗口的案例

作者:黄舟 | 点击: | 来源:黄舟
0606
2017
什么是子窗口?当我们在点击Windows窗口的某个按钮时,比如点击窗口的关闭按钮,往往会弹出一个窗口来提示相关信息,类似这种弹出窗口就是主窗口的子窗口。我们创建子窗口时,也是使用CreateWindow或者CreateWindowEx API。        我们来看下CreateWindow的函数原型:HWND WINAPI CreateWindow(_In_opt_ LPCTSTR...

        什么是子窗口?当我们在点击windows窗口的某个按钮时,比如点击窗口的关闭按钮,往往会弹出一个窗口来提示相关信息,类似这种弹出窗口就是主窗口的子窗口。我们创建子窗口时,也是使用createwindow或者createwindowex api。
        我们来看下createwindow的函数原型:

HWND WINAPI CreateWindow(
_In_opt_ LPCTSTR lpClassName,
_In_opt_ LPCTSTR lpWindowName,
_In_ DWORD dwStyle,
_In_ int x,
_In_ int y,
_In_ int nWidth,
_In_ int nHeight,
_In_opt_ HWND hWndParent,
_In_opt_ HMENU hMenu,
_In_opt_ HINSTANCE hInstance,
_In_opt_ LPVOID lpParam
);

        这里我们只介绍下第三个参数dwStyle,设置窗口的风格。我们在本专栏创建的第一个Windows窗口时,将该值设置为WS_OVERLAPPEDWINDOW,这个设置的意思是允许窗口重叠。我们想要创建子窗口,也是通过设置窗口的WS_CHILD风格实现。而需要显示子窗口,还需要添加WS_VISIBLE风格。若想以弹出的方式显示子窗口(类似关闭确认的对话框),需要添加WS_POPUP风格。
        我们在本专栏介绍创建窗口的代码之上,在主函数中增加如下代码:

int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow)
{
// TODO: Place code here.

g_hInstance = hInstance;
BOOL nRet = Register("Main", WndProc);
if (!nRet)
{
MessageBox(NULL, "注册失败", "Infor", MB_OK);
return 0;
}
HWND hWnd = CreateMain("Main", "window");

CreateWindow("Main", "子窗口",
WS_OVERLAPPEDWINDOW|WS_CHILD|WS_VISIBLE|WS_POPUP, CW_USEDEFAULT, CW_USEDEFAULT, 400, 200,
hWnd, NULL, g_hInstance, NULL);


Display(hWnd);
Message();
return 0;
}

        注意第16行代码,就是我们利用CreateWindow创建子窗口,运行程序,效果如下:



# 弹出  # 将该  # 往往会  # 设置为  # 第三个  # 当我们  # 还需要  # 相关信息  # 第一个  # 对话框 

我要咨询做网站
成功案例
建站流程
  • 网站需
    求分析
  • 网站策
    划方案
  • 页面风
    格设计
  • 程序设
    计研发
  • 资料录
    入优化
  • 确认交
    付使用
  • 后续跟
    踪服务
  • 400 76543 55
    sale#ncxiaolao.cn
Hi,Are you ready?
准备好开始了吗?
那就与我们取得联系吧

咨询送礼现在提交,将获得笑劳科技策划专家免费为您制作
价值5880元《全网营销方案+优化视频教程》一份!
下单送礼感恩七周年,新老用户下单即送创业型空间+域名等大礼
24小时免费咨询热线400 76543 55
合作意向表
您需要的服务
您最关注的地方
预算

直接咨询