学习:窗口操作常用记录

窗口最大/小/正常化操作:

消息:WM_SYSCOMMAND

/*
D:\Visual_Studio_repos\MFC\8\
*/
SC_MAXIMIZE (or SC_ZOOM) Maximize the CWnd object.
SC_MINIMIZE (or SC_ICON) Minimize the CWnd object.
SC_RESTORE Restore window to normal position and size.
SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE,0); //最大化
SendMessage(WM_SYSCOMMAND, SC_MINIMIZE, 0); //最小化
SendMessage(WM_SYSCOMMAND, SC_RESTORE, 0); //正常化

窗口关闭

SC_CLOSE Close the CWnd object
afx_msg void OnClose( );

两种方法都可以

void CMy8Dlg::OnBnClickedButton4()
{
SendMessage(WM_SYSCOMMAND,SC_CLOSE, 0);
}
void CMy8Dlg::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (AfxMessageBox(_T("是否要关闭窗口?"), MB_YESNO,NULL) == IDYES) {
CDialogEx::OnClose();
}
}

窗口大小位置调动:

SetWindowPos
MoveWindow

两种方法:

SetWindowPos(NULL, 10, 10, 0, 0, SWP_NOSIZE); //最后一个参数 大小不变 所以就忽略第三和第四参数
MoveWindow(10, 10, 100, 100);

ps:如果位置要居中直接CenterWindow()


窗口置顶:

void CMy8Dlg::OnBnClickedCheck1()
{
CButton* cb = (CButton *)GetDlgItem(IDC_CHECK1);
if (cb->GetCheck()) {
//如果单选框被选中的话 那么就保持置顶操作
::SetWindowPos(m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
}
else {
::SetWindowPos(m_hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
}
}

加载应用程序图标:

OnInitDialog中编写:

HICON icon = AfxGetApp()->LoadIcon(IDI_ICON1); //通过获得应用的程序theApp对象的地址去调用LoadIcon
SetIcon(icon,FALSE);
posted @   zpchcbd  阅读(249)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· DeepSeek+PageAssist实现本地大模型联网
· 手把手教你更优雅的享受 DeepSeek
· 腾讯元宝接入 DeepSeek R1 模型,支持深度思考 + 联网搜索,好用不卡机!
· 从 14 秒到 1 秒:MySQL DDL 性能优化实战
点击右上角即可分享
微信分享提示