Location:
Search - WM_DRAWITEM
Search list
Description: 在VCKBASE上读到《一种漂亮的自绘菜单》 [作者:郑恒 (lbird)]。应用到我的工程里后发现:文章中提到的效果能很好的实现。但是有一点不方便:需要映射 WM_DRAWITEM 和 WM_MEASUREITEM 消息才能实现自画功能。这对于一个基于对话框的工程或者仅仅需要弹出式菜单的工程来说很不方便-read "A beautiful painting from the menu" [Author : Zheng Heng (lbird)]. I applied to the project Lane found : The article referred to the good results can be achieved. But what is inconvenient : the need for mapping and WM_MEASUREITEM WM_DRAWITEM news can be achieved self-portrait function. This is a dialog based on the works or just need to pop-up menu, the works inconvenient
Platform: |
Size: 46761 |
Author: 张玉放 |
Hits:
Description: 代码简介或代码解析:
1 将要显示的菜单资源添加到资源中的“Menu”下,命名为IDR_MENU1
2 在CMainFram类添加消息WM_CONTEXTMENU、WM_DRAWITEM和WM_MEASUREITEM
-code or code analysis : one to be shown in the menu resources were added to the resources of the "Menu", IDR_MENU1 named in two categories added CMainFram news WM_CONTEXTME NU, and WM_MEASUREITEM WM_DRAWITEM
Platform: |
Size: 42857 |
Author: stone |
Hits:
Description: 用 Win API 实现自绘按钮类
用过MFC自绘按钮的人都知道,是通过重载了父窗口WM_DRAWITEM的响应消息实现的。同时也要子类化按钮来得到按钮的其他有用的消息,比如WM_MOUSEMOVE、WM_KEYDOWN等消息。因为MFC的消息循环都是封装好的,所以只要派生一下基本控件类就可以了。当是用WIN32API做的话就需要自己来子类化按钮窗口的消息循环了,相信经常编程的朋友都知道,子类化控件要用到SetWindowLong来改变窗口的回调过程,然后在回调窗口内添上自己需要处理的消息即可。因为我们要实现自绘按钮所以最好把子类化的过程做成一个类,然后传给它要自绘的按钮句柄就行了。因为要在类里面实现消息回调函数,但是类里面的消息回调函数只能是静态的,所以不能对应每个实例的消息回调。在我实现的按钮子类化类里,我用到Thunk技术或SetProp函数来实现的
Platform: |
Size: 101753 |
Author: 苗然 |
Hits:
Description: 在VCKBASE上读到《一种漂亮的自绘菜单》 [作者:郑恒 (lbird)]。应用到我的工程里后发现:文章中提到的效果能很好的实现。但是有一点不方便:需要映射 WM_DRAWITEM 和 WM_MEASUREITEM 消息才能实现自画功能。这对于一个基于对话框的工程或者仅仅需要弹出式菜单的工程来说很不方便-read "A beautiful painting from the menu" [Author : Zheng Heng (lbird)]. I applied to the project Lane found : The article referred to the good results can be achieved. But what is inconvenient : the need for mapping and WM_MEASUREITEM WM_DRAWITEM news can be achieved self-portrait function. This is a dialog based on the works or just need to pop-up menu, the works inconvenient
Platform: |
Size: 46080 |
Author: 张玉放 |
Hits:
Description: 代码简介或代码解析:
1 将要显示的菜单资源添加到资源中的“Menu”下,命名为IDR_MENU1
2 在CMainFram类添加消息WM_CONTEXTMENU、WM_DRAWITEM和WM_MEASUREITEM
-code or code analysis : one to be shown in the menu resources were added to the resources of the "Menu", IDR_MENU1 named in two categories added CMainFram news WM_CONTEXTME NU, and WM_MEASUREITEM WM_DRAWITEM
Platform: |
Size: 43008 |
Author: stone |
Hits:
Description: vc6.0实现,listbox的透明效果,效果很好,在vc6.0下编译通过,很多人都会有用的-vc6.0 realize, listbox transparent effect, good effect, in vc6.0 under the compiler is passed, many people will be useful
Platform: |
Size: 266240 |
Author: LIMQUAN |
Hits:
Description: 用VC实现界面中控件TabControl的基本功能。-VC interface used to achieve the basic functions of TabControl control.
Platform: |
Size: 126976 |
Author: 张松宝 |
Hits:
Description: 用 Win API 实现自绘按钮类
用过MFC自绘按钮的人都知道,是通过重载了父窗口WM_DRAWITEM的响应消息实现的。同时也要子类化按钮来得到按钮的其他有用的消息,比如WM_MOUSEMOVE、WM_KEYDOWN等消息。因为MFC的消息循环都是封装好的,所以只要派生一下基本控件类就可以了。当是用WIN32API做的话就需要自己来子类化按钮窗口的消息循环了,相信经常编程的朋友都知道,子类化控件要用到SetWindowLong来改变窗口的回调过程,然后在回调窗口内添上自己需要处理的消息即可。因为我们要实现自绘按钮所以最好把子类化的过程做成一个类,然后传给它要自绘的按钮句柄就行了。因为要在类里面实现消息回调函数,但是类里面的消息回调函数只能是静态的,所以不能对应每个实例的消息回调。在我实现的按钮子类化类里,我用到Thunk技术或SetProp函数来实现的-err
Platform: |
Size: 101376 |
Author: 苗然 |
Hits:
Description: 一般情況下,按鈕的繪製工作是由相同完成的,但是有時我們覺得系統繪製的效果太單調,想使自己的按鈕與眾不同,這時你可以選中控件的Owner draw屬性。選擇了這個屬性後,系統便不再繪製該控件,而是當需要顯示控件時,系統會發送WM_DRAWITEM消息給CButton類(對於SDK編程,消息通常是發給父窗口)。對於其他控件,如ListBox,系統在發送WM_DRAWITEM消息前,還發送WM_MEASUREITEM消息,主要是讓你設置ListBox中每個項目的高度-Under normal circumstances, the button mapping work is done by the same, but sometimes we feel that the effect of rendering the system is too monotonous and want to make your own buttons different, then you can select the control of the Owner draw attributes. Chose this attribute, the system will no longer draw the control, but when the need to show control, the system sends a message to CButton class WM_DRAWITEM (for SDK programming, the message is usually sent to the parent window). For other controls, such as the ListBox, the system sends the message WM_DRAWITEM ago, was also sent WM_MEASUREITEM message is designed to allow you to set the height of each item in the ListBox
Platform: |
Size: 22528 |
Author: testtestwu |
Hits:
Description: 透明的控件, 一般继承自TGraphicControl的(就是那些没有handle属性, 不能有focus的控件, 如image)
都有Transparent属性. 对TWinControl类的控件, 要实现透明只要完成以下
四步基本上就成了.
1.在Create中设定ControlStyle :=ControlStyle - [csOpaque]
2. override 它的CreateParams方法, exstyle 里加上WS_EX_TRANSPARENT.
3. 修改它的parent的window style, 去掉WS_CLIPCHILDREN.
inherited CreateParams(Params)
with Params do
begin
{ 完全重画 }
Style := Style and not WS_CLIPCHILDREN
Style := Style and not WS_CLIPSIBLINGS
{ 增加透明 }
ExStyle := ExStyle or WS_EX_TRANSPARENT
end
4. 截获WM_ERASEBKGND, 什么都不做直接返回1.(不搽除背景)
一般有上面3步能成. 有些控件比如TPanel, 在它的paint中用了fillrect,
所以要实现透明的话还要override 它的paint方法, 自己画.
按钮透明需要进一步处理.
createparams里加上style := style or BS_OWNERDRAW
然后在WM_DRAWITEM中自己画吧
-透明的控件, 一般继承自TGraphicControl的(就是那些没有handle属性, 不能有focus的控件, 如image)
都有Transparent属性. 对TWinControl类的控件, 要实现透明只要完成以下
四步基本上就成了.
1.在Create中设定ControlStyle :=ControlStyle- [csOpaque]
2. override 它的CreateParams方法, exstyle 里加上WS_EX_TRANSPARENT.
3. 修改它的parent的window style, 去掉WS_CLIPCHILDREN.
inherited CreateParams(Params)
with Params do
begin
{ 完全重画 }
Style := Style and not WS_CLIPCHILDREN
Style := Style and not WS_CLIPSIBLINGS
{ 增加透明 }
ExStyle := ExStyle or WS_EX_TRANSPARENT
end
4. 截获WM_ERASEBKGND, 什么都不做直接返回1.(不搽除背景)
一般有上面3步能成. 有些控件比如TPanel, 在它的paint中用了fillrect,
所以要实现透明的话还要override 它的paint方法, 自己画.
按钮透明需要进一步处理.
createparams里加上style := style or BS_OWNERDRAW
然后在WM_DRAWITEM中自己画吧
Platform: |
Size: 1024 |
Author: hzhang |
Hits:
Description: 自绘控件程序演示,vc sdk,WM-DRAWITEM-own-drawn control demo source code
Platform: |
Size: 1025024 |
Author: tao xm |
Hits:
Description: 第一步:将所有菜单项设置为MF_OWNERDRAW,即自绘模式
第二步:在WM_MEASUREITEM消息中设置菜单项的大小
第三步:在WM_DRAWITEM消息中进行菜单项的绘制-The code of owner draw menu for VC++ designer
Platform: |
Size: 24576 |
Author: 蒋涛 |
Hits:
Description: BCMenu::LoadMenu()对整个菜单作了处理.我注意到,如果菜单是弹出式的,那么不需要映射WM_DRAWITEM
和WM_MEASUREITEM就能实现自画功能.于是我在CMenuEx::LoadMenu()中重新构建了整个菜单,
把所有的子菜单创建为弹出式的菜单使用API函数::CreatePopupMenu()
-BCMenu :: LoadMenu () made a deal with the entire menu, I noticed that if the menu is a pop-up, then no mapping WM_DRAWITEM
And be able to achieve self-portrait function WM_MEASUREITEM So I CMenuEx :: LoadMenu () to re-build the entire menu,
All the sub-menu to create a pop-up menu to use the API function :: CreatePopupMenu ()
Platform: |
Size: 15360 |
Author: heye |
Hits:
Description: 一种革命性的菜单换肤技术:
不用设置 OWNERDRAW自绘风格
不用处理WM_DRAWITEM 和 M_MEASUREITEM 消息
可捕获绝大多数的不同类型的菜单:
窗口下拉菜单、窗口系统菜单、弹出菜单、
EDIT内置右键菜单、滚动条内置右键菜单、
通用对话框中的各种类型的菜单、
信息框中的系统菜单-A revolutionary menu skinning techniques: from the painting without setting OWNERDRAW style without treatment WM_DRAWITEM and M_MEASUREITEM message may capture most of the different types of menus: pull-down menu window, the window system menu, the pop-up menu, EDIT built-in context menu , the scroll bar built right menu, the various types of common dialog menu information system menu box
Platform: |
Size: 49152 |
Author: jack |
Hits: