MFC心型窗体

:新建MFC对话框应用在OnInitDialog()函数里添加如下程序,同时别忘了添加头文件#include<afxwin.h>

代码如下


    CRgn   rgnA, rgnB;

    CPoint ptVertex[540];
    for (int i = 0; i < 180; i++)
    {
        ptVertex[i].x = 200-200*cos(i*3.14/180);
        ptVertex[i].y = 200-200*sin(i*3.14/180);
    }
    for (int i = 180; i < 360; i++)
    {
        ptVertex[i].x = 600 - 200 * cos((i-180)*3.14/180);
        ptVertex[i].y = 200 - 200 * sin((i-180)*3.14/180);
    }
    for (int i = 360; i < 450; i++)
    {
        ptVertex[i].x = 400+400 * cos((i-360)*3.14/180);
        ptVertex[i].y = 200 +400 * sin((i-360)*3.14/180);
    }
    for (int i = 450; i < 540; i++)
    {
        ptVertex[i].x =400-400 * cos((540-i)*3.14/180);
        ptVertex[i].y = 200 + 400 * sin((540-i)*3.14/180);
    }
    rgnA.CreatePolygonRgn(ptVertex, 540, ALTERNATE);//多边形区域
    SetWindowRgn((HRGN)rgnA, true);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在 VC++ MFC 中添加的全过程如下: 1. 打开 VC++ MFC 应用程序,创建一个新的 MFC 应用程序。 2. 在“工具箱”中选择“对话框”控件,然后在主界面上单击并拖动以创建新的对话框。 3. 右键单击新创建的对话框,并选择“Add Class”选项。在“Add Class”对话框中,选择“MFC Class from TypeLib”选项,并选择“Microsoft Forms 2.0 Form”控件,然后单击“Finish”按钮。 4. 在“Add Member Variables”对话框中,选择要添加的控件,并为该控件命名,并单击“OK”按钮。 5. 在新创建的类中,添加以下代码: ``` BOOL CMyForm::OnInitDialog() { CDialogEx::OnInitDialog(); // TODO: Add extra initialization here m_ctlMyButton.SubclassDlgItem(ID_MY_BUTTON, this); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } ``` 6. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“Class”属性,将其更改为新创建的类名。 7. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“Style”属性,将其更改为“Popup”。 8. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“ExStyle”属性,将其更改为“WS_EX_TOOLWINDOW”。 9. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“Caption”属性,将其更改为“”(空字符串)。 10. 在新创建的类中,添加以下代码: ``` void CMyForm::OnOK() { // TODO: Add your specialized code here and/or call the base class CDialogEx::OnOK(); } void CMyForm::OnCancel() { // TODO: Add your specialized code here and/or call the base class CDialogEx::OnCancel(); } ``` 11. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“Menu”属性,将其更改为“None”。 12. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“System Menu”属性,将其更改为“False”。 13. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“Minimize Box”属性,将其更改为“False”。 14. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“Maximize Box”属性,将其更改为“False”。 15. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“Resizable”属性,将其更改为“False”。 16. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“Visible”属性,将其更改为“False”。 17. 在新创建的类中,添加以下代码: ``` void CMyForm::OnSize(UINT nType, int cx, int cy) { CDialogEx::OnSize(nType, cx, cy); // TODO: Add your message handler code here } BOOL CMyForm::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default return CDialogEx::OnEraseBkgnd(pDC); } ``` 18. 在新创建的类中,添加以下代码: ``` BEGIN_MESSAGE_MAP(CMyForm, CDialogEx) ON_WM_SIZE() ON_WM_ERASEBKGND() END_MESSAGE_MAP() ``` 19. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“Event”属性,将其更改为“OnInitDialog”事件,并将其关联到新创建的类的“OnInitDialog”方法。 20. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“Event”属性,将其更改为“OnOK”事件,并将其关联到新创建的类的“OnOK”方法。 21. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“Event”属性,将其更改为“OnCancel”事件,并将其关联到新创建的类的“OnCancel”方法。 22. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“Event”属性,将其更改为“OnSize”事件,并将其关联到新创建的类的“OnSize”方法。 23. 在“资源视图”中,选择“IDD_MY_DIALOG”对话框,并在“属性视图”中选择“Event”属性,将其更改为“OnEraseBkgnd”事件,并将其关联到新创建的类的“OnEraseBkgnd”方法。 24. 最后,在新创建的类中,添加头文件“afxctl.h”和“afxwin.h”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栋梁程序开发工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值