在下初学MFC,我做了桌面时钟的小程序,然后把对话框上的Title bar隐藏了,然后把时钟背景透明了,但是这样做后,用鼠标右击时钟,没有右键菜单,只能通过Esc才能把应用程序关闭。我想通过右击时钟显示右键菜单来关闭,但是试了好多方法,还是不行。请各位高手不吝赐教,在下谢过各位了。MFC static控件 窗口 菜单
解决方案 »
- DLL的问题
- directShow对正在播放的视频进行图片抓取
- 几个DLL是否可以共用.def文件?
- YY一下:自定义类似于HTTP的协议
- 为什么总是提示断言失败?急
- 写木马的问题,请教高手达人
- 对话框如何像菜单一样,当鼠标点击对话框以外的界面的时候,就自动隐藏或者关闭?
- 建立套接字,用Receive接收,为什么我还没发送,就能接收到很大的负数,好象是地址。
- 请问在对话框上怎样显示一个图片。
- 请教高手,用vc死机后,cpp和h文件变成空?高分征解!!
- vc++下运用TeeChart控件,曲线显示不出来
- 项目急需,MFC中使用webbrowser,请求地址中包含中文,解析出乱码问题,在线等,求大神指导!
还有你说只剩下控件,是指这个clock?
通过以下代码透明化的。然后就只剩下这个表盘了。
typedef BOOL (WINAPI *lpfnSetLayeredWindowAttributes)(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);
lpfnSetLayeredWindowAttributes SetLayeredWindowAttributes; //设置成边缘透明 COLORREF maskColor=RGB(0,0,0); HMODULE hUser32 = GetModuleHandle("user32.dll"); //加载动态链接库
SetLayeredWindowAttributes = (lpfnSetLayeredWindowAttributes)GetProcAddress(hUser32,"SetLayeredWindowAttributes"); //取得SetLayeredWindowAttributes函数指针
//为窗口加入WS_EX_LAYERED扩展属性
SetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE)^0x00080000); //调用SetLayeredWinowAttributes函数
SetLayeredWindowAttributes(this->GetSafeHwnd(), maskColor, 192, 0x00000001); FreeLibrary(hUser32); //释放动态链接库
void CMyStatic::OnRButtonDown(UINT nFlags, CPoint point)
{
CStatic::OnRButtonDown(nFlags, point); CMenu* menu_bar = AfxGetMainWnd()->GetMenu();
CMenu* file_menu = menu_bar->GetSubMenu(0);
ASSERT(file_menu); file_menu->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON, point.x,
point.y, this);
}