我是在SDK下开发的,使用CreateWindow创建了一个COMBOBOX窗体,如何给它的背景帖幅图片呢?
Windows注册了的窗体有个默认的WndProc,处理了各种消息,所以我在外面无法处理WM_PAINT消息了.另外,如何给这个Combobox添加\删除项?谢谢!!!
Windows注册了的窗体有个默认的WndProc,处理了各种消息,所以我在外面无法处理WM_PAINT消息了.另外,如何给这个Combobox添加\删除项?谢谢!!!
解决方案 »
- 设置对话框上下次序。
- 程序界面自适应系统的分辨率
- 求windows2k 98 me 等iso镜像的有效下载地址,手边没有, 急用 谢谢
- vc7产生的项目如何移植到vc6中,也就是如何用vc6来打开vc7的项目,有什么好的办法?
- 我用的是emvc++4.0我想读网卡的mac地址,用了几个函数都没成功。
- 一个CDaoWorkspace的连接问题。
- 100分找:网关模拟器 (CMPP1.2协议的)
- win32中如何获得鼠标点击的位置
- 新手问题:那位大虾能够精炼地概括一下com的实质?
- 谁能帮帮我解决一下这个问题?谢谢
- 有人需求自用二手手提电脑吗?
- 在html help workshop中如何显示首页
http://www.vckbase.com/document/viewdoc/?id=522 实现自绘
使用子类化可以取得ComboBox中Edit控件的窗口
对于Edit控件的背景可以参照
http://www.vckbase.com/document/viewdoc/?id=360对于 ComboBox 添加/删除项可以向其
::SendMessage(hComboBox, CB_DELETESTRING, ...
和
::SendMessage(hComboBox, CB_INSERTSTRING, ...
来处理
An owner-drawn combo box sends the WM_DRAWITEM message to its parent window or dialog box procedure each time the application must repaint a list item. The lParam parameter is a pointer to a DRAWITEMSTRUCT structure that identifies the control and list item. It also contains information needed to paint the item. The example in Creating a Square Meal Dialog Box displays the list-item text and the bitmap associated with the food group.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/comboboxes/usingcomboboxes.asp
class CComboBoxColor : public CComboBox
{
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
}
-------------.cpp
HBRUSH CComboBoxColor::CtlColor(CDC* pDC, UINT nCtlColor)
{
pDC->SetBkColor(RGB(192,192,192));
return NULL;
}
---------------
HBRUSH CCb3Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
static HBRUSH cbhdr = ::CreateSolidBrush(RGB(255, 192, 150));
CWnd *pParent = pWnd->GetParent(); if(pWnd->GetDlgCtrlID() == IDC_COMBO1 ||
(pParent && pParent->GetDlgCtrlID() == IDC_COMBO1))
{
pDC->SetBkColor(RGB(255, 192, 150));
return cbhdr;
}
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
COMBOBOX是Windows自己注册的一种窗体,有一个自己的WndProc,所以虽然我自己分发了窗口消息,但是纤细还是没有进到我写的这个窗口函数里,是进了默认的WndProc,而这个默认的WndProc又不能像MFC里那么重载,所以没有办法处理楼上各位所说的消息。至于添加项的已经解决了!谢谢!