当前位置: 首页 > news >正文

东莞网站建设 环保设备代刷网站推广链接0元价格

东莞网站建设 环保设备,代刷网站推广链接0元价格,广告设计都学啥,网站开发的理解最终成果:背景半透明、但是控件不透明的对话框。 对话框上用图片代表功能,当点击图片时,响应点击事件,弹出相对应的对话框。 对话框固定大小,不可放大缩小,以免影响图片的显示数量。 步骤一:背景…

最终成果:背景半透明、但是控件不透明的对话框。

                对话框上用图片代表功能,当点击图片时,响应点击事件,弹出相对应的对话框。

                对话框固定大小,不可放大缩小,以免影响图片的显示数量。

步骤一:背景透明、控件不透明

    方法一:创建一个对话框CTransparentDlg,在OnInitDialog()函数中,添加代码:

    SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE)|WS_EX_LAYERED);    SetLayeredWindowAttributes(0,150,LWA_ALPHA);

得到的效果是 对话框和控件一起半透明。原因:

BOOL SetLayeredWindowAttributes(
HWND hwnd, // 指定分层窗口句柄
COLORREF crKey, // 指定需要透明的背景颜色值,可用RGB()宏
BYTE bAlpha, // 设置透明度,0表示完全透明,255表示不透明
DWORD dwFlags // 透明方式
);
其中,dwFlags参数可取以下值:
LWA_ALPHA时:crKey参数无效,bAlpha参数有效;
LWA_COLORKEY:窗体中的所有颜色为crKey的地方将变为透明,bAlpha参数无效。其常量值为1。
LWA_ALPHA | LWA_COLORKEY:crKey的地方将变为全透明,而其它地方根据bAlpha参数确定透明度。
#define LWA_COLORKEY 0x00000001
#define LWA_ALPHA 0x00000002

设置LWA_ALPHA参数时,对话框只取决于设置的透明度,是整体窗体包括窗体上的控件,相同的透明度

 方法二:在OnInitDialog()函数中,添加代码:

    COLORREF maskColor = RGB(255,255,255);   //掩码颜色  SetWindowLong(this->GetSafeHwnd(),  GWL_EXSTYLE,   GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)| 0x80000);  //设定窗体使用扩展模式   SetLayeredWindowAttributes(maskColor,128,LWA_COLORKEY)

同时,添加OnCtlColor响应函数:

HBRUSH CTransparentDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);// TODO:  Change any attributes of the DC hereif(nCtlColor == CTLCOLOR_DLG)   //此处设置为窗体透明,CTLCOLOR_DLG表示对话框  {  CBrush *brush;  brush = new CBrush(RGB(255,255,255));  return (HBRUSH)(brush->m_hObject);  }  if(nCtlColor == CTLCOLOR_DLG || nCtlColor == CTLCOLOR_BTN || nCtlColor ==  CTLCOLOR_STATIC) //静态文本背景透明             {              pDC->SetBkMode(TRANSPARENT);   pDC->SetTextColor(RGB(0,0,0));   return (HBRUSH)GetStockObject(HOLLOW_BRUSH);               }// TODO:  Return a different brush if the default is not desiredreturn hbr;
}

最终的效果为 窗体全透明,控件不透明。原因:

    在OnCtlColor函数中,brush = new CBrush(RGB(255,255,255))将窗体背景色全部刷成RGB(255,255,255)白色。

    而OnInitDialog()函数中COLORREF maskColor = RGB(255,255,255); 且SetLayeredWindowAttributes参数设置为LWA_COLORKEY,代表将对话框中颜色为RGB(255,255,255)的部分,替换为全透明色。于是就出现了窗体全透明而控件不透明的情况。

以上2种方法都没有解决我需要的“窗体半透明,控件不透明”的问题,等找到解决方案后再补充

PS:20180327 补充,让美工做了一张半透明的图片,加载资源到工程,作为整个对话框的主背景,23333333333......

步骤二:添加图片和图片响应事件

    resource资源视图下,导入bmp格式的图片。

    对话框添加图片控件,控件属性—Type改为Bitmap,于是Image就可以下拉选择刚才导入的图片了

    修改图片控件的ID(图片在MFC中被包装成static类,vs对static类的控件都不提供Wizard),设置Notify属性为TRUE,于是就可以为图片添加点击事件了。
————————————————
版权声明:本文为CSDN博主「della_Xiang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sunflower_della/article/details/79668165

http://www.zhongyajixie.com/news/37734.html

相关文章:

  • 做网站运营需要具备什么能力黑马程序员培训机构在哪
  • 网站怎么分类广告推销
  • 做外链选择那些网站最好最全的搜索引擎
  • 优惠网站代理怎么做互联网营销师培训
  • 公共资源交易中心怎么报名投标网站seo推广seo教程
  • jsp网站开发文献抖音搜索关键词排名
  • 网站登录页面模板下载引流推广平台有哪些
  • 无锡网站怎么优化排名企业做推广有几种方式
  • 学做电商的网站西安seo关键词排名
  • 做网站数据对电脑要求太原seo排名
  • 个人网站论坛展示网站怎么创建
  • 长春专业网站建设价格百度seo网站优化
  • 网站模板一般用什么软件做怎么注册中视频账号
  • 青海网站建设潍坊网站建设咨询
  • 学校网站制作代码网页设计制作网站html代码大全
  • 手机如何网站百度一下手机版首页
  • 怎么做网站跳转太原网络推广公司哪家好
  • 重庆做网站优化推广的公司百度下载安装
  • 刚做的网站怎么才能搜到我百度网站收录查询
  • 动态网站开发在线测试在线生成网页网站
  • 做网站时如何上传图片seo网站推广教程
  • 网页设计网站模板网站建设网页模板下载深圳海外推广
  • 网上购物网站建设论文6西安网站建设网络推广
  • 做网站什么样的域名好网站检测中心
  • 检测一个网站用什么软件做的方法百度怎么打广告在首页
  • 甘肃网站优化阿里云免费域名
  • 做网站 融资贵州快速整站优化
  • 疫情防控最新政策十条南昌seo排名公司
  • 做免费试用的网站必应搜索引擎
  • 河北区网站建设中小型企业网站设计与开发