请教:对话框上有一个label(static text),怎么控制它始终在对话框的中心? 尽管设计时指定align text = center,但是给对话框(showmaxmized)后位置就不在中心了;另外对于不同分辨率的环境下,怎么达到以上目的呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在窗口的WM_SIZE消息处理函数中使用:GetWindowRectSCreenToClientMoveWindow 你截获窗口还原的消息处理之,参考:void C***Dlg::OnSysCommand(UINT nID, LPARAM lParam){ if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else if (nID == SC_MINIMIZE) { CDialog::OnSysCommand(nID, lParam); } else if(nID == SC_MAXIMIZE) { CDialog::OnSysCommand(nID, lParam); MaxOrRestore(); ListCtrlOnSize(); StatTextOnSize(); } else if(nID == SC_RESTORE)//还原消息 { CDialog::OnSysCommand(nID, lParam); } else { CResizableDialog::OnSysCommand(nID, lParam); }} 重载WM_SIZE消息然后MoveWindow使位置在中心,这样可以改变大小时,都成比例的在中心位置 据说CSDN发帖出问题了,我测试下 意外的惊喜——忽然发现自己多了个红花,散分 简单的绘图问题 请教一个关于消息触发的问题 时间问题,请各位看看 新手提问:ODBC问题 请教如何给打印机设置一个打印长度超过32767mm的问题 紧急问题!!!!!!!!!!!! 想拿高薪吗?前提是....... 谁有《COM原理与应用》(潘爱民)的例子源程序?希望给我一份 这个是在编译的时侯算还是运行的时候算? Visual C++6.0编写串行通信程序中用到MSComm控件的一个问题
GetWindowRect
SCreenToClient
MoveWindow
void C***Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else if (nID == SC_MINIMIZE)
{
CDialog::OnSysCommand(nID, lParam);
}
else if(nID == SC_MAXIMIZE)
{
CDialog::OnSysCommand(nID, lParam);
MaxOrRestore();
ListCtrlOnSize();
StatTextOnSize();
}
else if(nID == SC_RESTORE)//还原消息
{
CDialog::OnSysCommand(nID, lParam);
}
else
{
CResizableDialog::OnSysCommand(nID, lParam);
}
}
然后MoveWindow使位置在中心,这样可以改变大小时,都成比例的在中心位置