像这样,请教高手!!!本人菜鸟需要具体步骤。
ããå¨åææ¡£è§å¾ï¼SDIï¼ç»æä¸ï¼è§å¾ä¸è¬ç¨æ¥æ¾ç¤ºæ°æ®ãä½æ¯ï¼ææ¶ä¹å¸æå¨è§å¾ä¸æ¾ç¤ºæé®æå
¶ä»çæ§ä»¶ï¼ä»¥æ»¡è¶³ç¨æ·çéè¦ãVC6.0没æç´æ¥ç»åºå¨è§å¾ä¸æ·»å æé®çå导ï¼æ许æï¼æ没æ¾å°ï¼ãä¸é¢æå°ç»åºä¸ä¸ªæå¨æ·»å æé®å¹¶ä½¿æé®å
·æååºäºä»¶ çåè½ã
ãã第ä¸æ¥ï¼æ·»å ä¸ä¸ªæé®
ãã1ãé¦å å¨**View.hä¸å®ä¹ä¸ä¸ªæé®æ è¯
ããï¼define ID_BUTTON 100
ãã2ã å ¶æ¬¡ç»C**View类添å ä¸ä¸ªæååé
ããCButton m_myButton; //è¿æ¡è¯å¥åå¨**View.hçç±»çå®ä¹ä¸ï¼è¦å£°æ为PUBLICç±»å
ãã3ãç¶åå建æé®å®ä¾
ããm_myButton.Create(_T("示ä¾æé®"), //æé®çcaptionå±æ§ï¼æé®çæ¾ç¤º
ããWS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_ICON, // æé®ä¹æ¯ä¸ç§çªä½ï¼åæ ·æçªä½é£æ ¼ï¼è¿äºå¸¸ééè¿æè¿ç®ä½¿æé®è¾¾å°ä¸å®çææï¼è¿äºå¸¸éçå«ä¹å¯ä»¥åèMSDNã
ããCRect(20,320,50,340), //è¿ä¸ªåæ°æåºæé®å¨è§å¾ä¸çä½ç½®åæé®ç大å°ã
ããthis, //è¿ä¸ªæéæåæé®è¿ä¸ªçªä½çç¶çªä½
ããID_BUTTON); //è¿æ¯åæ为æé®å®ä¹ç常éï¼æé®çæ§å¶ID
ãã4ãç¶åè°ç¨å½æ°m_MyButton.ShowWindow(SW_HIDE)è¿ä¸ªå½æ°æ ¹æ®åæ°çæ ·å¼æ¾ç¤ºæé®ï¼æ¤æ¶çåæ°è¡¨ç¤ºéèæé®ï¼å¦æè¦æ¾ç¤ºæé®ï¼å¯ä»¥ä»¥SW_SHOWä½ä¸ºåæ°ï¼è¿æ ·ï¼å°±æ¯å¨æ³ç¨å°æé®çæ¶åè°ç¨å½æ°m_MyButton.ShowWindow(SW_SHOW)æ¾ç¤ºåºæé®ã
ãã说æï¼æé®å¨C**View::OnCreate()å½æ°ä¸åå§åãè¿ä¸ªå½æ°æ¯å½çªä½è¢«å建çæ¶åè°ç¨çä¸ä¸ªåå§åå½æ°ãåæé®è¿æ ·ç对象å¨è¿ä¸ªæ¶ååå§åæ¯æ¯è¾åéçã
ããint C**View::OnCreate(LPCREATESTRUCT lpCreateStruct)
ãã{
ããif (CView::OnCreate(lpCreateStruct) == -1)
ããreturn -1;
ãã
ããm_MyButton.Create(_T("示ä¾æé®"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_ICON,
ããCRect(20,320,50,340), this, ID_BUTTON);
ããm_MyButton.SetIcon(AfxGetApp()->LoadIcon(ICON_SAVE)); //ç»æé®å è½½ä¸ä¸ªå¾æ
ããm_MyButton.ShowWindow(SW_HIDE);
ãã
ããreturn 0;
ãã}
ãã
ãã第äºæ¥ï¼æ¶æ¯å½æ°
ããæ¤æ¶çæé®æ¯ä¸è½ååºä»»ä½æ¶æ¯çãä¸é¢æ们æå¨æ·»å æé®çæ¶æ¯ã
ãã1ã声æå½æ°åå
ããå¨C**Viewç±»ç声æä¸å£°æä¸ä¸ªprotectedç±»åçå½æ°
ãã//{{AFX_MSG(CSoftView)
ããafx_msg void OnMyButton();
ãã//}}AFX_MSG
ããé常çåæ³ï¼ä¹æ¯VC6.0å导çåæ³ï¼ä¼å°æ¶æ¯å¤çå½æ°å£°æå¨//{{AFX_MSG(CSoftView)ï½ï½ï½ //}}AFX_MSGæ è®°ä¸ï¼å½ç¶ï¼å¨VS.NET 2003ä¸ï¼æ们å°çä¸å°è¿ä¸ªæ è®°ãçæ£èµ·ä½ç¨çæ¯afx_msgï¼å®è¡¨æéåçå½æ°æ¯ä¸ä¸ªæ¶æ¯å¤çå½æ°ã
ãã2ãå½æ°çå®ç°
ããä¸é¢å®ç°å½æ°ï¼æ¾ç¶ï¼è¿ä¸ªå½æ°ä¹æ¯C**Viewç±»çä¸ä¸ªæåå½æ°ï¼æ以å¨**View.cppä¸å®ç°
ããvoid C**View::OnMyButton()
ãã{
ããMessageBox("ä½ ç¹å»äºæ");
ãã}
ãã
ãã3ãå¦æè¿ä¸ªæ¶åä½ å°±è¿è¡ç¨åºçè¯ï¼æé®ä¾ç¶ä¸ä¼ååºä»»ä½äºä»¶ãå 为äºä»¶ç产ççæ¶æ¯æ¯äº¤ç»è§å¾çï¼æ以æ们éè¦ææ¶æ¯ä»è§å¾ä¼ ç»æé®ï¼å®ç°èµ·æ¥å¾ç®åï¼å¨**View.cppä¸æ¾å°å¦ä¸çæ è®°ï¼
ããBEGIN_MESSAGE_MAP(C**View, CView)
ããEND_MESSAGE_MAP()
ããå¨è¿ä¸ªæ è®°ä¸åå ¥å¦ä¸ä»£ç ï¼ON_BN_CLICKED(ID_BUTTON, OnMybutton)
ããè¿å¥ä»£ç æ¯è¯´ï¼è®©ID_BUTTONææç对象ååºåå»ï¼ON_BN_CLICKEDï¼äºä»¶ï¼äºä»¶çå¤çå½æ°æ¯OnMybuttonãè¿æ¯MFCçæ¶æ¯æ å°æºå¶ã对äºè¿ä¸ªæºå¶ï¼å¨æ¤ä¸å¤è¯´ï¼å¾ åç»ã
ããå°æ¤ï¼ä¸ä¸ªå¯ä»¥ååºåå»äºä»¶çæé®å°±å建好äºãå¦æè¦ååºå ¶ä»äºä»¶ï¼å¯ä»¥æç §è¿ä¸ªæ¹å¼å建ï¼åªéè¦æ¹å¨è¿ä¸ªè¿ç¨ä¸ç第3æ¥ï¼å°ON_BN_CLICKEDæ¹æå¸æååºçæ¶æ¯ç±»åå°±å¯ä»¥äºã
ãã第ä¸æ¥ï¼æ·»å ä¸ä¸ªæé®
ãã1ãé¦å å¨**View.hä¸å®ä¹ä¸ä¸ªæé®æ è¯
ããï¼define ID_BUTTON 100
ãã2ã å ¶æ¬¡ç»C**View类添å ä¸ä¸ªæååé
ããCButton m_myButton; //è¿æ¡è¯å¥åå¨**View.hçç±»çå®ä¹ä¸ï¼è¦å£°æ为PUBLICç±»å
ãã3ãç¶åå建æé®å®ä¾
ããm_myButton.Create(_T("示ä¾æé®"), //æé®çcaptionå±æ§ï¼æé®çæ¾ç¤º
ããWS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_ICON, // æé®ä¹æ¯ä¸ç§çªä½ï¼åæ ·æçªä½é£æ ¼ï¼è¿äºå¸¸ééè¿æè¿ç®ä½¿æé®è¾¾å°ä¸å®çææï¼è¿äºå¸¸éçå«ä¹å¯ä»¥åèMSDNã
ããCRect(20,320,50,340), //è¿ä¸ªåæ°æåºæé®å¨è§å¾ä¸çä½ç½®åæé®ç大å°ã
ããthis, //è¿ä¸ªæéæåæé®è¿ä¸ªçªä½çç¶çªä½
ããID_BUTTON); //è¿æ¯åæ为æé®å®ä¹ç常éï¼æé®çæ§å¶ID
ãã4ãç¶åè°ç¨å½æ°m_MyButton.ShowWindow(SW_HIDE)è¿ä¸ªå½æ°æ ¹æ®åæ°çæ ·å¼æ¾ç¤ºæé®ï¼æ¤æ¶çåæ°è¡¨ç¤ºéèæé®ï¼å¦æè¦æ¾ç¤ºæé®ï¼å¯ä»¥ä»¥SW_SHOWä½ä¸ºåæ°ï¼è¿æ ·ï¼å°±æ¯å¨æ³ç¨å°æé®çæ¶åè°ç¨å½æ°m_MyButton.ShowWindow(SW_SHOW)æ¾ç¤ºåºæé®ã
ãã说æï¼æé®å¨C**View::OnCreate()å½æ°ä¸åå§åãè¿ä¸ªå½æ°æ¯å½çªä½è¢«å建çæ¶åè°ç¨çä¸ä¸ªåå§åå½æ°ãåæé®è¿æ ·ç对象å¨è¿ä¸ªæ¶ååå§åæ¯æ¯è¾åéçã
ããint C**View::OnCreate(LPCREATESTRUCT lpCreateStruct)
ãã{
ããif (CView::OnCreate(lpCreateStruct) == -1)
ããreturn -1;
ãã
ããm_MyButton.Create(_T("示ä¾æé®"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_ICON,
ããCRect(20,320,50,340), this, ID_BUTTON);
ããm_MyButton.SetIcon(AfxGetApp()->LoadIcon(ICON_SAVE)); //ç»æé®å è½½ä¸ä¸ªå¾æ
ããm_MyButton.ShowWindow(SW_HIDE);
ãã
ããreturn 0;
ãã}
ãã
ãã第äºæ¥ï¼æ¶æ¯å½æ°
ããæ¤æ¶çæé®æ¯ä¸è½ååºä»»ä½æ¶æ¯çãä¸é¢æ们æå¨æ·»å æé®çæ¶æ¯ã
ãã1ã声æå½æ°åå
ããå¨C**Viewç±»ç声æä¸å£°æä¸ä¸ªprotectedç±»åçå½æ°
ãã//{{AFX_MSG(CSoftView)
ããafx_msg void OnMyButton();
ãã//}}AFX_MSG
ããé常çåæ³ï¼ä¹æ¯VC6.0å导çåæ³ï¼ä¼å°æ¶æ¯å¤çå½æ°å£°æå¨//{{AFX_MSG(CSoftView)ï½ï½ï½ //}}AFX_MSGæ è®°ä¸ï¼å½ç¶ï¼å¨VS.NET 2003ä¸ï¼æ们å°çä¸å°è¿ä¸ªæ è®°ãçæ£èµ·ä½ç¨çæ¯afx_msgï¼å®è¡¨æéåçå½æ°æ¯ä¸ä¸ªæ¶æ¯å¤çå½æ°ã
ãã2ãå½æ°çå®ç°
ããä¸é¢å®ç°å½æ°ï¼æ¾ç¶ï¼è¿ä¸ªå½æ°ä¹æ¯C**Viewç±»çä¸ä¸ªæåå½æ°ï¼æ以å¨**View.cppä¸å®ç°
ããvoid C**View::OnMyButton()
ãã{
ããMessageBox("ä½ ç¹å»äºæ");
ãã}
ãã
ãã3ãå¦æè¿ä¸ªæ¶åä½ å°±è¿è¡ç¨åºçè¯ï¼æé®ä¾ç¶ä¸ä¼ååºä»»ä½äºä»¶ãå 为äºä»¶ç产ççæ¶æ¯æ¯äº¤ç»è§å¾çï¼æ以æ们éè¦ææ¶æ¯ä»è§å¾ä¼ ç»æé®ï¼å®ç°èµ·æ¥å¾ç®åï¼å¨**View.cppä¸æ¾å°å¦ä¸çæ è®°ï¼
ããBEGIN_MESSAGE_MAP(C**View, CView)
ããEND_MESSAGE_MAP()
ããå¨è¿ä¸ªæ è®°ä¸åå ¥å¦ä¸ä»£ç ï¼ON_BN_CLICKED(ID_BUTTON, OnMybutton)
ããè¿å¥ä»£ç æ¯è¯´ï¼è®©ID_BUTTONææç对象ååºåå»ï¼ON_BN_CLICKEDï¼äºä»¶ï¼äºä»¶çå¤çå½æ°æ¯OnMybuttonãè¿æ¯MFCçæ¶æ¯æ å°æºå¶ã对äºè¿ä¸ªæºå¶ï¼å¨æ¤ä¸å¤è¯´ï¼å¾ åç»ã
ããå°æ¤ï¼ä¸ä¸ªå¯ä»¥ååºåå»äºä»¶çæé®å°±å建好äºãå¦æè¦ååºå ¶ä»äºä»¶ï¼å¯ä»¥æç §è¿ä¸ªæ¹å¼å建ï¼åªéè¦æ¹å¨è¿ä¸ªè¿ç¨ä¸ç第3æ¥ï¼å°ON_BN_CLICKEDæ¹æå¸æååºçæ¶æ¯ç±»åå°±å¯ä»¥äºã
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-10-13
一、建立MFC单文档,定义View类的成员变量CButton m_button,在***View类中添加OnCreate 或OnInitialUpdate 函数,并在函数中加入
CRect rect_button(40,10,200,60); //控制按钮大小、位置
m_button.Create("hello",WS_CHILD|WS_VISIBLE|WS_BORDER,rect_button,this,IDC_DYNAMICBUTTON);
m_button.ShowWindow(SW_SHOWNORMAL);
将IDC_DYNAMICBUTTON添加至resource.h中
这样按钮应该都可以显示出来了。
二、然后添加消息响应函数。中加入afx_msg void OnBtnDown();
BEGIN_MESSAGE_MAP 和 END_MESSAGE_MAP 之间加入ON_BN_CLICKED(IDC_DYNAMICBUTTON,OnBtnDown) 关联按钮变量; 最后加入定义
void ***View::OnBtnDown()
{
MessageBox("hello","helloworld",MB_OK);
}
这样点击按钮就可以弹出对话框了。
CRect rect_button(40,10,200,60); //控制按钮大小、位置
m_button.Create("hello",WS_CHILD|WS_VISIBLE|WS_BORDER,rect_button,this,IDC_DYNAMICBUTTON);
m_button.ShowWindow(SW_SHOWNORMAL);
将IDC_DYNAMICBUTTON添加至resource.h中
这样按钮应该都可以显示出来了。
二、然后添加消息响应函数。中加入afx_msg void OnBtnDown();
BEGIN_MESSAGE_MAP 和 END_MESSAGE_MAP 之间加入ON_BN_CLICKED(IDC_DYNAMICBUTTON,OnBtnDown) 关联按钮变量; 最后加入定义
void ***View::OnBtnDown()
{
MessageBox("hello","helloworld",MB_OK);
}
这样点击按钮就可以弹出对话框了。
第2个回答 2013-05-05
建立工程时需要把View设置成CFormView,然后在关联的对话框上放按钮就是了。重点是你上边的按钮不是普通的,要自绘。我这里有一个别人的自绘好的按钮类,可以实现你上面的UI。看附件。
要具体步骤可以,还可以直接帮你,但是你的悬赏似乎鄙视了接下来的劳动,所以希望楼主能顺利搞定。
你这给的例子好像是对话框的,我想要的是单文档的View中添加按钮,不过还是谢谢你。
追答请仔细看上边的回答,已经说了需要设置view类为CFormView然后在“关联对话框上拖控件”。
否则你就慢慢Create吧。
第3个回答 2013-05-05
CreateWIndow