⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_15477.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:15477 发表者:wolfbaby 发表日期:2002-09-18 16:25:55
<br>主题:各位高人HELP ME 我这个问题应该不算难的 SOS!
<br>内容:我在WINDOWS98下要实现:在SDI程序的窗口右下脚弄一个(最好是透明或半透明)的对话框<BR>,把这个对话框在右下角固定的位置显示(总显示在最前面)<BR>我的情况是在程序的主窗里面,进行操作比如点到地图的一个点。在右下角的对话框中显示一些<BR>相关信息?<BR>&nbsp;&nbsp; 我应该怎么做?把建一个非模式对话框?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:徐景周 回复日期:2002-09-18 16:29:33
<br>内容:Create一个对话框,SHOW出来。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:徐景周 回复日期:2002-09-18 16:45:10
<br>内容:先建一对话框,如类名为CAdvertise,ID为IDD_DIALOG_ADVERTISE,计算出窗口右下角的方位,将该对话框置为无模式显示在该位置上既可。关于背景透明,现在2000下有个API涵数SetLayeredWindowAttributes可以很方便的实现,例码也很多。<BR><BR>如:<BR>无模式窗体创建:<BR>CAdvertise *m_pADdlg ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //广告窗体<BR><BR>//同时在系统区上面显示广告窗体,只能是无模式对话框<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_pADdlg = new CAdvertise(this);<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_pADdlg-&gt;Create(IDD_DIALOG_ADVERTISE,this);<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_pADdlg-&gt;ShowWindow(SW_SHOW);<BR><BR>透明窗体创建:<BR>#ifndef WS_EX_LAYERED<BR>#define WS_EX_LAYERED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00080000<BR>#define LWA_COLORKEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x00000001<BR>#define LWA_ALPHA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00000002<BR>#endif<BR><BR>typedef BOOL (WINAPI* lpfnSetLayeredWindowAttributes)(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;HMODULE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_hDll;<BR><BR>m_hDll = ::LoadLibrary(_T("USER32.dll"));<BR>::SetWindowLong(hWnd, GWL_EXSTYLE, ::GetWindowLong(hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);<BR><BR>BOOL CLayeredWindowHelperST::SetLayeredWindowAttributes(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;&nbsp;&nbsp;&nbsp;bRetValue = TRUE;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;if (m_hDll)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpfnSetLayeredWindowAttributes pFn = NULL;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pFn = (lpfnSetLayeredWindowAttributes)GetProcAddress(m_hDll, "SetLayeredWindowAttributes");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (pFn)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bRetValue = pFn(hWnd, crKey, bAlpha, dwFlags);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} // if<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else bRetValue = FALSE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;} // if<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;return bRetValue;<BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:wolfbaby 回复日期:2002-09-20 17:13:56
<br>内容:高人:<BR>&nbsp;&nbsp;&nbsp;&nbsp;SetLayeredWindowAttributes在WIN98下如何实现啊?<BR>还有可以把对话框处理成 具有吸附作用的功能吗?<BR>或者把对话框和主窗口关联起来 随着主窗口的尺寸的改变而改变?<BR><BR>在此再次谢谢 这里热心帮助的GOOD 人:)感动ing……
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Norton AntivVirus 回复日期:2002-09-20 23:13:14
<br>内容:Win98不支持这个函数,要不你就能看到98的东西跟2k的一样了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:不说 回复日期:2002-09-23 04:11:05
<br>内容:有个次的不能再次的办法在98上实现呵呵……从ms下一个gdiplus.dll,然后学怎么用gdi+,然后用调整图象alpha值的办法自画你的对话框,一般麻烦,但至少跟平台无关了就……
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -