急想知道 创建自窗口是的窗口类为list 和combox即可 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这没有什么冲突吧,VC是什么???不过是一种开发环境嘛,当然它经过微软的定制包装,MFC也只不过是在SDK上包了一层,把HANDLE转换成某种对象实体,其实质还是用SDK呀.实际上,在写一些复杂一点的程序时,经常需要用一些底层的API,这没什么. 如可在DialogBox()生成的窗体上用sdk产生list和combox控件?能举个例子吗??? 如果是对话框,在编辑对话框模板时直接加就是了,下面就是一个对话框模板:IDD_DIALOG DIALOGEX 0, 0, 320, 113STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENUEXSTYLE WS_EX_APPWINDOWCAPTION "Test4"FONT 9, "宋体", 0, 0, 0x1BEGIN DEFPUSHBUTTON "Close",IDOK,200,7,113,18 EDITTEXT IDC_EDIT1,7,19,83,16,ES_AUTOHSCROLL | ES_WANTRETURN LISTBOX IDC_LIST1,199,32,114,74,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP LTEXT "IDC_EDIT1:",IDC_STATIC,7,7,41,8END如果是动态添加的控件,用CreateWindow创建就行了。其中lpszClassName可以是以下几个系统定义的窗口类名:BUTTON,COMBOBOX,EDIT,LISTBOX,MDICLIENT,SCROLLBAR,STATIC。如:hwnd = CreateWindow("BUTTON","Button1",...); 谢谢In335Hz的例子,受益匪浅。不过我还不清楚如何使用动态创建的控件如(向listbox添加选项,定义,捕捉单击消息等) 向ListBox,ComboBox添加选项等控制是通过发送消息实现的,你可以看看MSDN中LB_ ,CB_ 开头的一些消息。同时还有一些宏和发送这些消息是等价的,如:#define ListBox_InsertString(hwndCtl, index, lpsz) ((int)(DWORD)SendMessage((hwndCtl), LB_INSERTSTRING, (WPARAM)(int)(index), (LPARAM)(LPCTSTR)(lpsz)))这些宏定义在\MICROSOFT VISUAL STUDIO\VC98\Include\目录下的WINDOWSX.H头文件中可以找到。要处理Notify消息(在父窗口里)的话,看看LBN_,CBN_开头的一些消息,有些控件还发送WM_COMMAND消息。如果要扩展这些控件的话,可以看看子类化和超类化。 有关多媒体定时器的问题 紧急求教!!! 远程线程注入 怎样在MDI的CMainFrame窗口的深灰色部分添加一副图片? 很菜的问题 為何我不能夠將回調函數放入類中呢?簡單問題為何沒人回 如何在com中创建对话框 关于CHTTPSERVER这个MFC类 请教大虾:怎么从无模式对话框dlg2中获取无模式对话框dlg1中EDIT控件中的输入数据???具体步骤!!! VS2010环境中使用teechart,获取曲线坐标运行报错 我该怎么办?? 菜鸟送分:如何编写基于像素图形输出的程序? LNK2001的错误信息,而且libcmt.lib 和 msvcrt.lib 加入后无效
不过是一种开发环境嘛,当然它经过微软的定制包装,MFC也只不过是在SDK上包了一层,把HANDLE转换成某种对象实体,其实质还是用SDK呀.实际上,在写一些复杂一点的程序时,经常需要用一些底层的API,这没什么.
能举个例子吗???
IDD_DIALOG DIALOGEX 0, 0, 320, 113
STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "Test4"
FONT 9, "宋体", 0, 0, 0x1
BEGIN
DEFPUSHBUTTON "Close",IDOK,200,7,113,18
EDITTEXT IDC_EDIT1,7,19,83,16,ES_AUTOHSCROLL | ES_WANTRETURN
LISTBOX IDC_LIST1,199,32,114,74,LBS_SORT | LBS_NOINTEGRALHEIGHT |
WS_VSCROLL | WS_TABSTOP
LTEXT "IDC_EDIT1:",IDC_STATIC,7,7,41,8
END
如果是动态添加的控件,用CreateWindow创建就行了。其中lpszClassName可以是以下几个系统定义的窗口类名:
BUTTON,COMBOBOX,EDIT,LISTBOX,MDICLIENT,SCROLLBAR,STATIC。
如:
hwnd = CreateWindow("BUTTON","Button1",...);
LB_ ,CB_ 开头的一些消息。同时还有一些宏和发送这些消息是等价的,如:
#define ListBox_InsertString(hwndCtl, index, lpsz) ((int)(DWORD)SendMessage((hwndCtl), LB_INSERTSTRING, (WPARAM)(int)(index), (LPARAM)(LPCTSTR)(lpsz)))
这些宏定义在\MICROSOFT VISUAL STUDIO\VC98\Include\目录下的WINDOWSX.H头文件中可以找到。
要处理Notify消息(在父窗口里)的话,看看LBN_,CBN_开头的一些消息,有些控件还发送WM_COMMAND消息。
如果要扩展这些控件的话,可以看看子类化和超类化。