MFC按钮调用一程序,如何执行程序命令行参数呢

MFC按钮调用一程序,如何执行程序命令行参数呢,第1张

标准

c

函数

不知道行不行,如果在win32环境下,调用win32

API绝对是可以的,用shellexecute

函数

启动

程序

命令行参数

在程序

名称

后按

空格

隔开,在调用程序

main函数

中使用string

strLine=::AfxGetApp()->m_lpCmdLine;就可以获取命令行参数了,在开发多进程项目的时候用的比较多,常用于进程间启动

参数传递

在头文件中添加

afx_msg void OnNetPortSet(void);

在源文件中添加

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWndEx)

ON_COMMAND(ID_MODIFYPORT, &CMainFrame::OnNetPortSet)

END_MESSAGE_MAP()

ID_MODIFYPORT是菜单项的ID号,OnNetPortSet()菜单项的消息处理函数。你就可以在这里面添加用户选择该菜单项后所做的事情了啊

如果要让d出式菜单的某个菜单项,灰化,使用下面这个函数吧EnableMenuItem(m_hMainMenu, i, MF_BYPOSITION |MF_GRAYED)

具体函数使用说明如下

允许或禁止指定的菜单条目

BOOL EnableMenuItem(HMENU hMenu,UINT uIDEnableItem, UINT uEnable);

返回值 : BOOL 判断是否成功

参数表 :

参数 类型及说明

hMenu ,菜单句柄

wIDEnableItem ,欲允许或禁止的一个菜单条目的标识符。如果在wEnable参数中设置了MF_BYCOMMAND标志,这个参数就代表欲改变菜单条目的命令ID。如设置的是MF_BYPOSITION,则这个参数代表菜单条目在菜单中的位置(第一个条目肯定是零)

wEnable ,参考ModifyMenu函数中的菜单常数标志定义表,其中列出了允许使用的所有常数。对于这个函数,只能指定下述常数:MF_BYCOMMAND,MF_BYPOSITION,MF_ENABLED,MF_DISABLED以及MF_GRAYED

这些值有下列含义:

· MF_BYCOMMAND 指定参数给出已存在的菜单项的命令ID号。此为缺省值。

· MF_BYPOSITION 指定参数给出已存在菜单项的位置。第一项所在的位置是0。

· MF_DISABLED 使菜单项无效,以便它不能被选择,但不变灰。

· MF_ENABLED 使菜单项有效,以便它能够被选择,并可从变灰的状态中恢复出来。

· MF_GRAYED 使菜单项无效,以便它不能被选择并同时变灰。

afx_msgvoidOnDrawItem(intnIDCtl,LPDRAWITEMSTRUCTlpDrawItemStruct);

Parameters

nIDCtl

存储发送

WM_DRAWITEM

消息的控件ID,如果是菜单发送的,nIDCtl

的值为0。

lpDrawItemStruct

一个指向DRAWITEMSTRUCT

结构体

的指针,该结构体保存有关要被绘制的项目与绘制所需要的类型等星系。

Remarks

当自绘按钮(owner-draw

button),下拉

列表框

(combo

box),列表框(list

box)视觉属性,或者菜单发生变化时,框架为他们的owner调用该函数。

DRAWITEMSTRUCT结构的itemAction

成员定义了要进行的绘制 *** 作行为。该值确定了所需的绘制动作。

在处理完此消息之前,应用程序应当确保由DRAWITEMSTRUCT

结构的成员hDC

标识的

设备上下文

还原到默认状态。

如果上面结构的成员hwndItem

指向CButton,CMenu,CListBox或者

CComboBox

对象,那么就调用相应类的DrawItem

虚函数

。重载相应类的DrawItem

成员函数

来绘制各个项。

OnDrawItem()这个函数是自已去绘画一个控件,根据你想要的形状,图案它是建立一个控件的外表而用到的

可以这样理解,OnDrawItem是画窗口中的子控件的,因为它的入口参数LPDRAWITEMSTRUCT带入不同子控件的相关参数,而且,你得把字控件设置成“自画”类型,才会调用到OnDrawItem,顺便说一下自画,不是所有设置成自画类型的控件都会调用父窗口的OnDrawItem,例如ListBox的自画,你就必须重载CListBox的DrawItem方法和MeasureItem方法才可以,但象菜单,按钮等的自画则会调用OnDrawItem。OnPaint和OnDrawItem不在一个范畴内,他是WM_PAINT的响应函数,凡是基于CWnd的类都有OnPaint事件发生,就是说凡是窗口都有WM_PAINT事件发生。

以上就是关于MFC按钮调用一程序,如何执行程序命令行参数呢全部的内容,包括:MFC按钮调用一程序,如何执行程序命令行参数呢、MFC怎样给菜单设置带参数的函数、谁帮忙介绍一下mfc里OnDrawItem这个函数以及其参数谢谢了。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9525015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存