大家好,又见面了,我是你们的朋友全栈君。
设置圆角对话框: (网上说在onsize中做,我还没有尝试,目前写在OnInitDialog 里面了)
CRect rect;
GetWindowRect(&rect);
CRgn reg;
reg.CreateRoundRectRgn(reg.left,reg.top,rgn.width(),rgn.Height());
SetWindowRgn(rgn,true);
设置窗体启动时的大小:
SetWindowPos(); 需要详细了解用法
MoveWindow();
注意屏幕坐标客户坐标转化
CenterWindow() 对话框居中设置
子对话框 覆盖在父对话框上
子对话框 设置属性: 边框 none ,类型 child,
设置子对话框透明, 设置属性TransParent 为true
子对话框 通信父对话框
::SendMessage(::GetParent(this->m_hWnd),WM_SYSCOMMAND,0xF012,0);
表示,拖动子对话框 带动 父对话框 一起移动
在父 对话框的 oninitDialog 中,创建 非模态对话框
GetWindowRect(&rect);
ScreenToClient(&rect);
CsubDialog *pSubDialog
pSubDialog = new CsubDialog();
pSubDialog->Create(IDD_SUBDIALOG,this);
pSubDialog->MoveWindow(rect.left,rect.top,rect.Width(),50); 设置子对话框 在 父对话框 中的位置
pSubDialog->BringWindowToTop(); 顶置子对话框
pSubDialog->ShowWindow(SW_SHOW); 显示子对话框
设置对话框风格:
ModifyStyleEX(0,WS_EX_TOPMOST,SWP_SHOWWINDOW);
设置透明对话框(没有尝试这个,现在记在这里,备用)
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);
//SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE) | 0x80000);
HINSTANCE hInst = LoadLibrary(L”User32.DLL”);
if(hInst)
{
typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
MYFUNC fun = NULL;
//取得SetLayeredWindowAttributes函数指针
fun=(MYFUNC)GetProcAddress(hInst, “SetLayeredWindowAttributes”);
if(fun)fun(this->GetSafeHwnd(),0,200,2);
Invalidate();
FreeLibrary(hInst);
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/129472.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...