当前位置:网站首页>MFC dynamically creates dialog boxes and changes the size and position of controls
MFC dynamically creates dialog boxes and changes the size and position of controls
2022-07-06 06:18:00 【Laobai 436196571】
1、 Dynamically create dialog
void CXXX_DEMODlg::OnBnClickedBtntest()
{
if(dlg_num==0)// Open only once
{
DLG_TEST *pDlg=new DLG_TEST;
pDlg->Create(IDD_DLG_TEST, this);// Always at the top
//pDlg->Create(IDD_DLG_TEST, GetDesktopWindow());
pDlg->ShowWindow(SW_SHOW);
dlg_num+=1;
}
}
2、 Delete pointer in WM_NCDESTROY in delete this
void DLG_TEST::OnBnClickedCancel()
{
// TODO: Add control notification handler code here
dlg_num-=1;
OnCancel();
}
void DLG_TEST::OnNcDestroy()
{
CDialog::OnNcDestroy();
// TODO: Add message handler code here
delete this;
}
Reference resources :
MFC Click button , Another dialog box pops up
CWnd Class MoveWindow() or SetWindowPos() You can change the size and position of the control .
void MoveWindow(int x,int y,int nWidth,int nHeight);
void MoveWindow(LPCRECT lpRect);
The first usage needs to give the new coordinates and width of the control 、 Height ;
The second usage gives the storage location CRect object ;
example :
CWnd *pWnd;pWnd = GetDlgItem( IDC_EDIT1 ); // Get control pointer ,IDC_EDIT1 For control ID Number
pWnd->MoveWindow( CRect(0,0,100,100) ); // Display a width in the upper left corner of the window 100、 high 100 Edit control for
SetWindowPos() Functions are more flexible , It is mostly used when only the position of the control is modified and the size remains unchanged, or when only the size is modified and the position remains unchanged :
BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);
I can't use the first parameter , General set to NULL;
x、y Control location ;cx、cy Control width and height ;
nFlags Common values :
SWP_NOZORDER: Ignore the first parameter :
SWP_NOMOVE: Ignore x、y, Keep the position unchanged ;
SWP_NOSIZE: Ignore cx、cy, Keep the size unchanged ;
example :
CWnd *pWnd;pWnd = GetDlgItem( IDC_BUTTON1 ); // Get control pointer ,IDC_BUTTON1 For control ID Number
pWnd->SetWindowPos( NULL,50,80,0,0,SWP_NOZORDER | SWP_NOSIZE ); // Move the button to the window (50,80) It's about
pWnd = GetDlgItem( IDC_EDIT1 );
pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER | SWP_NOMOVE ); // Set the size of the edit control to (100,80), Position the same
pWnd = GetDlgItem( IDC_EDIT1 );
pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER ); // The size and position of the editing control are changed. The above method is also applicable to all kinds of windows .
边栏推荐
- 2022 software testing workflow to know
- G - Supermarket
- 【微信小程序】搭建开发工具环境
- Detailed explanation of P problem, NP problem, NPC problem and NP hard problem
- 调用链监控Zipkin、sleuth搭建与整合
- keil MDK中删除添加到watch1中的变量
- 10m25dcf484c8g (FPGA) amy-6m-0002 BGA GPS module
- LeetCode 1200. 最小绝对差
- Caused by:org. gradle. api. internal. plugins . PluginApplicationException: Failed to apply plugin
- Testing of web interface elements
猜你喜欢
【Postman】Collections-运行配置之导入数据文件
Caused by:org. gradle. api. internal. plugins . PluginApplicationException: Failed to apply plugin
LeetCode 732. 我的日程安排表 III
异常检测方法总结
P问题、NP问题、NPC问题、NP-hard问题详解
Manhattan distance sum - print diamond
[eolink] PC client installation
浅谈专项测试之弱网络测试
曼哈顿距离和-打印菱形
数字三角形模型 AcWing 1015. 摘花生
随机推荐
GTSAM中ISAM2和IncrementalFixedLagSmoother说明
CoordinatorLayout+NestedScrollView+RecyclerView 上拉底部显示不全
Aike AI frontier promotion (2.13)
职场进阶指南:大厂人必看书籍推荐
Still worrying about how to write web automation test cases? Senior test engineers teach you selenium test case writing hand in hand
G - Supermarket
(中)苹果有开源,但又怎样呢?
Manage configuration using Nacos
Resttemplate and feign realize token transmission
Simulation volume leetcode [general] 1314 Matrix area and
Database - current read and snapshot read
模拟卷Leetcode【普通】1447. 最简分数
JDBC Requset 对应内容及功能介绍
异常检测方法总结
【eolink】PC客户端安装
RestTemplate、Feign实现Token传递
[API interface tool] Introduction to postman interface
[eolink] PC client installation
keil MDK中删除添加到watch1中的变量
Buuctf-[gxyctf2019] no dolls (xiaoyute detailed explanation)