对话框皮肤(地下城皮肤怎么获得)

 
设置圆角对话框:(网上说在onsize中做,我还没有尝试,目前写在OnInitDialog里面了)
CRectrect;
GetWindowRect(&rect);
CRgnreg;
reg.CreateRoundRectRgn(reg.left,reg.top,rgn.width(),rgn.Height());
SetWindowRgn(rgn,true);
 设置窗体启动时的大小:
SetWindo

大家好,又见面了,我是你们的朋友全栈君。

 

设置圆角对话框: (网上说在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);

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129472.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月14日 下午11:40
下一篇 2022年4月14日 下午11:40


相关推荐

  • mysql 灾备方案_mysql数据库灾备方案

    mysql 灾备方案_mysql数据库灾备方案moduleinfo card count count phone 1 count 1 search count count phone 4 count 4 card des 阿里云数据库专家保驾护航 为用户的数据库应用系统进行性能和风险评估 参与配合进行数据压测演练 提供数据库优化方面专业建议 在业务高峰期与用户共同保障数据库系统平

    2026年3月18日
    2
  • 进程间通信的五种方式

    进程间通信的五种方式进程间通信的意思就是在不同进程之间传递信息 它是一组编程接口 让程序员协调不同进程 使能够相互传递消息 IPC 目的 1 数据传输 一个进程需要将它的数据发送给另一个进程 发送的数据量在一个字节到几兆字节之间 2 共享数据 多个进程想要操作共享数据 一个进程对共享数据的修改 别的进程应该立刻看到 3 通知事件 一个进程需要向另一个或一组进程发送消息 通知它 它们 发生了某种事件 如进程

    2026年3月17日
    2
  • 让大模型稳定地输出 JSON

    让大模型稳定地输出 JSON

    2026年3月15日
    2
  • Linux 入门学习之用户管理

    Linux 入门学习之用户管理

    2021年9月16日
    51
  • 进程的挂起状态详细分析方法_线程挂起

    进程的挂起状态详细分析方法_线程挂起通常我们所认为的进程有五大状态,新建态,就绪态,阻塞态,运行态,退出态。 下面是示意图: 事实上还存在被挂起的进程。    交换的需要前面图中三个基本状态(就绪态、运行态和阻塞态)提供了一种为进程行为建立模型的系统方法,并指导操作系统的实现。 但是,可以证明往模型中增加其他状态也是合理的。下面考虑一个没有使用虚拟内存的系统,每次执行中的进程必须完全载入内存。因此

    2025年7月16日
    8
  • namecheap域名如何绑定IP

    namecheap域名如何绑定IP近来需要申请域名 国内域名普遍比国外贵 所以就用 namecheap 主要还是 穷 namecheap 的界面变化很大导致 2018 年初之前的博客介绍都和现在的完全不同 本文就介绍如何域名如何绑定 IP 1 登录 namecheap 点击要绑定的域名 manage 2 配置对应的域名 3 最后等五分钟就可以 ping 通了

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号