3月18日
来源:互联网 发布:一面 软件 编辑:程序博客网 时间:2024/04/29 09:53
l
在网上找到一个用ActiveX控件实现显示JPG图片,是利用Ipicture接口来实现,要用到很多ActiveX控件的知识。可以参考孙鑫VC的第十八讲关于ActiveX控件的使用和创建,找一两个比较简单的例子进行重构和记忆。巩固ActiveX的知识点。
l
运用NOTIFYICONDATA和Shell_NotifyIcon界面操作命令,在系统的托盘
增加一个图标,手动编写响应函数WM_NOTIFYICON,增加在图标上的对鼠标左右键按下的操作(弹出式菜单)
详细操作:定义全局变量NOTIFYICONDATA,将变量的各个数据进行赋值,
在程序的初始化的地方调用Shell_NotifyIcon函数进行增加一个图标到托盘。
实现在图标右键可以弹出菜单,要新建一个菜单用于该图标的,手动编写WM_NOTIFYICON消息函数。函数体如下:
LONG CbackdropDlg::OnNotifyIcon(WPARAM wParam, LPARAM lParam)
{
// 响应在托盘图标上的单击
//wParam中是响应消息的图标ID,lParam中则是Windows的消息
// The backdrop icon sent us a message. Let''s see what it is
switch ( lParam )
{
case WM_RBUTTONDOWN:
{
// 用户在托盘图标上单击鼠标右键,弹出菜单
CMenu pMenu;
if (pMenu.LoadMenu(IDR_MENU1))
{
CMenu* pPopup = pMenu.GetSubMenu(0);
ASSERT(pPopup != NULL);
CPoint Point;
if(IsIconic()) pPopup->EnableMenuItem(IDC_MIN,MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
if (IsWindowVisible())// 根据对话框窗口的状态对相关菜单项使能
{
if(!IsIconic())
pPopup->EnableMenuItem(IDC_SHOW,MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
}
else
pPopup->EnableMenuItem(IDC_HIDE,MF_BYCOMMAND |
MF_DISABLED | MF_GRAYED);
if (bkbmp)// 根据对话框背景图状态改变菜单名称
pMenu.ModifyMenu(IDC_FIX,MF_STRING,IDC_FIX,"变化背景");
else
pMenu.ModifyMenu(IDC_FIX,MF_STRING,IDC_FIX,"固定背景)");
// 确定鼠标位置以便在该位置附近显示菜单
GetCursorPos( &Point );
SetForegroundWindow();
pPopup->TrackPopupMenu(
TPM_LEFTALIGN | TPM_RIGHTBUTTON,
Point.x, Point.y, this);?
}
}
break;
case WM_LBUTTONDBLCLK:
case WM_LBUTTONDOWN:
// OnShow();
break;
}
return 0;
}
- 3月18日
- 3月18日
- 3月18日整理
- 结婚登记日-3月18
- 2010年3月18日星期四
- 3月18日复习提纲
- 2012年3月18日学习
- 2012年3月18日
- 2015年3月18日 Modal
- 2015年3月18日工作总结
- 3月18日培训笔记
- 12月18日
- 8月18日
- 2月18日
- 7月18日
- 10月18日
- 6月18日
- 11月18日
- Release运行失败实例看编程习惯
- 3月15日
- 从别人那里抄了点东西
- 博客开张
- 解决Struts + Hibernate + MySql中文乱码的问题
- 3月18日
- css Dropshadow 滤镜
- fjnu 1540 WERTYU
- 转:Oracle表段中的高水位线HWM
- fjnu 1760 小樱的烦恼
- This server version is not supported. Only servers up to Microsoft SQL Server 2005 are supported.
- Konsole的字体调整
- 推荐一个小工具: Process Explorer
- 针对 .NET 开发人员的存储过程评估