回 帖 发 新 帖 刷新版面

主题:自绘按钮的问题!!!

要自绘按钮,需要获得一个DC句柄,比如要在对话框中自绘一个按钮,应该怎么样获得DC句柄??
HWND hdlg;
HDC hdc=GetDC(hdlg);.
....
DrawFrameControl()
...
这样可以画出框架吗?
我试了,好象不行,还望大虾指点一二。

回复列表 (共6个回复)

沙发

把这个当参数传递啊

板凳

晕,用自绘制按钮嘛.系统会产生WM_DRAWITEM消息,
The WM_DRAWITEM message is sent to the parent window of an owner-drawn button, combo box, list box, or menu when a visual aspect of the button, combo box, list box, or menu has changed.

A window receives this message through its WindowProc function.


Syntax

WM_DRAWITEM

    WPARAM wParam
    lpDrawItem = (LPDRAWITEMSTRUCT) lParam;

其中DRAWITEMSTRUCT中就已经包含了一个DC句柄了.

3 楼

WM_DRAWITEM 消息何时产生?
试了一下:
case WM_DRAWITEM :
....
   MessageBox(...);
...
  break;

却没有从MessageBox中得到过任何信息。
-------------------------------
学习中,还请大虾多多指教。

4 楼

只有当控件拥有自绘制样式(如按钮是:BS_OWNERDRAW)时才会发送自绘制消息.
具体请参见MSDN.

5 楼

三郎,我看了你的主题,帮不了你。支持你!
顶!

6 楼

恩,谢谢你们的支持,我已经找到例子了(基本代码),好不容易在图书馆的“故纸堆”里捞到一本(很旧的一本,95年版的了),都是用SDK方式写的,俺想做个XP样式的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册