WEB开发网
开发学院软件开发VC 在VC中透明浮动按键的实现 阅读

在VC中透明浮动按键的实现

 2008-11-13 19:34:27 来源:WEB开发网   
核心提示: 其中的m_pFont是成员变量,它保存了对话框的字体指针,在VC中透明浮动按键的实现(2),为了按键的标题风格与对话框的字体风格一致,在初始化时调用对话框的成员函数GetFont()即可得到指向对话框字体的CFont类指针,·使按键浮动显示要通过自绘来表示按键的各种状态,可填

其中的m_pFont是成员变量,它保存了对话框的字体指针,为了按键的标题风格与对话框的字体风格一致,在初始化时调用对话框的成员函数GetFont()即可得到指向对话框字体的CFont类指针。

·使按键浮动显示

要通过自绘来表示按键的各种状态,可填写DRAWITEMSTRUCT来通知DrawItem()函数需要做什么,我们先了解一下DRAWITEMSTRUCT:

typedef struct tagDRAWITEMSTRUCT{
  UINT CtlType; // 控件类型
  UINT CtlID;// 控件的ID号
  UNIT itemID;//菜单项的索引
  UINT itemAction;// 绘图操作
  UINT itemState; // 状态
  HWND hwndItem; // 控件的窗口句柄
  HDC hDC; // 相关的设备环境
  RECT rcItem;//控件的范围
  DWORD itemData;//指定与菜单项相联系的应用程序定义的32位值
}DRAWITEMSTRUCT;

利用这个结构先做一个按键状态设置函数:

void CDrawButton::SetButtonMode(UINT action, UINT mode)
{
// TODO: Add your message handler code
here and/or call default
  DRAWITEMSTRUCT DIS;
  DIS.CtlType = ODT_BUTTON;
  DIS.CtlID = GetDlgCtrlID();
  DIS.itemAction = action;
  DIS.itemState = mode;
  DIS.hwndItem = GetSafeHwnd();
  DIS.hDC = GetDC()- >GetSafeHdc();
  GetClientRect(&(DIS.rcItem));
  SendMessage(WM_DRAWITEM,(WPARAM)
GetSafeHwnd(),(LPARAM)&DIS);
  ReleaseDC(CDC::FromHandle(DIS.hDC));
}

这样,我们可以响应鼠标的各种消息来设置按键的各种状态:

上一页  1 2 3 4 5 6  下一页

Tags:VC 透明 浮动

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接