l 3 月 12 日 的如何在VC中使用JPG图片?
在网上找到一个用ActiveX控件实现显示JPG图片,是利用Ipicture接口来实现,要用到很多ActiveX控件的知识。可以参考孙鑫VC的第十八讲关于ActiveX控件的使用和创建,找一两个比较简单的例子进行重构和记忆。巩固ActiveX的知识点。
l 3 月 13 日 的如何在托盘里显示一个图标?
运用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;
}