2010年10月20日[原]自己实现的一个MessageBox()

    技术2022-05-19  21

     

    写过桌面应用程序的人都知道,MessageBox简直太常用了,可是MFC提供的MessageBox不但写起来麻烦(10个字母,中间还交叉着大小写),而且还只能用于字符串类型的,当你要显示int等其它类型的时候还要转化一下…… 出于偷懒的想法,于是就自己写了这样一个多功能的MessageBox()。所以说懒人推动了这个世界的进步(偷懒还有理了),不过呢,其实真正推动这个世界进步的人都不懒,无论是美国的Bill Gates、Steve Jobs,还是中国的李开复、马云。。。有哪个不是工作狂呢?

    废话少说,上code:

    --------------------------------------------------------------- //mb.h #pragma once #include "afxwin.h" class CMB { public: CMB(void); ~CMB(void); private: CString m_strMsg; CWnd * m_pwnd; public: void mb(int i); void mb(unsigned int i); void mb(CString str); void mb(char c); void mb(bool b); void mb(char * p); void mb(float f); void mb(double d); }; -------------------------------------------------------------- //mb.cpp #include "stdafx.h" #include "MB.h" CMB::CMB(void) { m_strMsg = ""; m_pwnd = CWnd::GetSafeOwner(); } CMB::~CMB(void) { } void CMB::mb(int i) { m_strMsg.Format("%d", i); m_pwnd->MessageBox(m_strMsg); } void CMB::mb(unsigned int i) { m_strMsg.Format("%d", i); m_pwnd->MessageBox(m_strMsg); } void CMB::mb(CString str) { m_pwnd->MessageBox(str); } void CMB::mb(char c) { m_strMsg.Format("%c", c); m_pwnd->MessageBox(m_strMsg); } void CMB::mb(bool b) { if(b) { m_strMsg = _T("true"); } else { m_strMsg = _T("false"); } m_pwnd->MessageBox(m_strMsg); } void CMB::mb(char * p) { m_strMsg.Format("%s", p); m_pwnd->MessageBox(m_strMsg); } void CMB::mb(float f) { m_strMsg.Format("%f", f); m_pwnd->MessageBox(m_strMsg); } void CMB::mb(double d) { m_strMsg.Format("%f", d); m_pwnd->MessageBox(m_strMsg); } 

      使用方法是让需要用到MessageBox的类继承CMB类,然后就可以在需要的地方用mb(...)调用了,本想把mb换成m的,不过这样可读性就太不好了…… int,float等类型可以直接扔给它,呵呵。由于是为了方便自己偷懒,所以实现得很简陋,还希望不要被鄙视了才好。

      貌似这是我的第一篇技术性的文章,特加上[原],得瑟一下,哈哈,以前的要不是转的,要不就是什么什么的笔记。。。希望以后自己能够多写点。

     


    最新回复(0)