.参数 窗口句柄, 整数型, , 窗口句柄。对于vb,这应该是一个窗体句柄。注意可能不是子窗口的句柄
.DLL命令 _创建菜单, 整数型, "user32", "CreatePopupMenu", , 创建一个空的菜单,成功返回菜单句柄,失败返回0
.DLL命令 _添加菜单项, 整数型, , "AppendMenuA", , 在指定的菜单里添加一个菜单项 非零表示成功,零表示失败。会设置GetLastError
.参数 菜单句柄, 整数型, , 菜单句柄
.参数 菜单常数标志, 整数型, , 参考ModifyMenu函数中的菜单常数标志定义表,其中列出了允许使用的所有常数
.参数 新菜单条目ID, 整数型, , 指定菜单条目的新命令ID。如果在wFlags参数中指定了MF_POPUP字段,那么这应该是指向一个d出式菜单的句柄
.参数 标志值, 文本型, , (相应的vb声明见注解),如果在wFlags参数中指定了MF_STRING标志,这就代表在菜单中设置的字串。如设置了MF_BITMAP标志,这就代表一个Long型变量,其中包含了一个位图句柄。如设置了MF_OWNERDRAW,这个值就会包括在DRAWITEMSTRUCT和MEASUREITEMSTRUCT结构中,在条目需要重画的时候由windows发送出去
.DLL命令 SetWindowLong, 整数型, , "SetWindowLongA"
.参数 hwnd, 整数型
.参数 nindex, 整数型
.参数 hnew, 整数型
.DLL命令 CallWindowProc, 整数型, "user32", "CallWindowProcA", , 将消息传答窗口函数
.参数 lpPrevWndFunc, 整数型
.参数 hwnd, 整数型
.参数 msg, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.DLL命令 GetWindowLong, 整数型, "user32", "GetWindowLongA", , 从指定窗口的结构中取得信息 由nIndex决定。零表示出错。会设置GetLastError
.参数 窗口句柄, 整数型, , 欲为其获取信息的窗口的句柄
.参数 属性, 整数型, , 欲取回的信息,可以是下述任何一个常数:GWL_EXSTYLE:扩展窗口样式GWL_STYLE:窗口样式GWL_WNDPROC:该窗口的窗口函数的地址GWL_HINSTANCE:拥有窗口的实例的句柄GWL_HWNDPARENT:该窗口之父的句柄。不要用SetWindowWord来改变这个值GWL_ID:对话框中一个子窗口的标识符GWL_USERDATA:含义由应用程序规定DWL_DLGPROC:这个窗口的对话框函数地址DWL_MSGRESULT:在对话框函数中处理的一条消息返回的值DWL_USER:含义由应用程序规定
.DLL命令 GetMenuString, 整数型, "user32", "GetMenuStringA"
.参数 hMenu, 整数型
.参数 wIDItem, 整数型
.参数 lpString, 文本型
.参数 nMaxCount, 整数型
.参数 wFlag, 整数型
// ID_TEST1 在Resource.h 中定义,随便给个整数值,不要和已有的重复就行了menu1.AppendMenu(MF_STRING,ID_TEST1,"Test1")// 第一项菜单项menu1.AppendMenu(MF_STRING,ID_TEST2,"Test2")// 第二项菜单项 ??menu1.InsertMenu(1,MF_BYPOSITIO假设包括自定义控件的dll文件为 MyCustomerControl.dll, dll中包括的控件名称为MyControl
1)在项目中,添加对包含自定义控件库MyCustomerControl.dll的引用
2)在Form1后台代码中
public partial class Form1 : Form{
//实例化一个自定义控件
MyControl mc = new MyControl( )
public Form1()
{
InitializeComponent()
}
//点击菜单时,将自定义控件加载到tabControl1的第一个TabPage上
private void MenuItem_Click(object sender, EventArgs e)
{
TabPage p0 = tabControl1.TabPages[0]
//如果已经加载了自定义控件,则退出
if(p0.Controls.Contain(mc)) return
//否则,添加自定义控件
p0.Controls.Add(mc)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)