现在位置: 首页 > 所有2012年发表的文章
2012-08-29 21:20 博客心语 ⁄ 共 1682字 暂无评论
    在我们的网站建设中,时常会遇到需要网页重定向的情况:象网站调整,如改变网页目录结构,网页被移到一个新地址,再或 者,网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让 访问客户还会得到一个404页面错误信息,访问流量白白丧失;再如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点...
阅读全文
2012-08-29 15:58 工业·编程 ⁄ 共 1148字 暂无评论
    以CSkinEdit( public CEdit )为例,设置Edit的属性:Multiline, 无Border.     效果图:   1.定义类成员变量: CBitmap m_bmp; CBrush m_brush; 在WM_CREATE消息中初始化它们: int CSkinEdit::OnCreate(LPCREATESTRUCT lpCreateStruct)  { if (CEdit::OnCreate(lpCreateStruct) == -1)   return -1; // TODO: Add your specialized creation code here HBITMAP h...
阅读全文
2012-08-29 15:49 工业·编程 ⁄ 共 700字 评论 1 条
1. MFC    优点:VS2008以及VS2010的扩展确实很强大,特别是原生的窗口运行时停靠以及PropertyGrid确实很强大    缺点:默认字体很模糊,无论你对MFC多了解,C++多熟悉,每次写代码时依然要重新熟悉代码,更不用提分析别人写的MFC代码,一个字:乱。 2. WTL    优点:Windows下有个最好的例子:Google Chrome    缺点:缺乏设计器,文档例子很少 3. wxWidgets    优点:虚幻...
阅读全文
2012-08-29 15:36 工业·编程 ⁄ 共 5760字 暂无评论
    Frame、View、Document的关系,非常重要,它们的确不是孤立的,而是互相联系的。    如果是SDI程序,CMainFrame调用GetActiveView获得CView,而CView可以调用GetDocument获得CDocument。如果已知CDocument,可以使用GetFirstViewPosition获得第一个相关的CView,然后使用GetNextView获得下一个的CView。之所以这么做,是因为MFC允许一个CDocument拥有多个CView。 》》》MFC控制条窗口布局原理 ...
阅读全文
2012-08-29 15:16 工业·编程 ⁄ 共 4129字 暂无评论
    CMenu类从CObject类派生而来。为什么要使用CMenu类呢?AppWzard不是把菜单做好了吗?在资源编辑器上修改菜单不是很方便吗? 学vc++稍微深入一点好,至少要能搞清楚AppWizard在背后都干了些什么东西。事实上mfc就是用CMenu类来生成菜单的。让我们就从CMenu开始吧。     CMenu生成的菜单有两种:Popup类型和非Popup类型。这两种方法里又可以分成使用资源编辑器生成的菜单资源和不使用这个资源...
阅读全文
2012-08-29 15:10 工业·编程 ⁄ 共 6498字 暂无评论
    大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢? 闲话少...
阅读全文
2012-08-29 15:07 工业·编程 ⁄ 共 2167字 暂无评论
    做一个MFC程序的时候碰到一个需求。就是需要根据定制情况,动态生成菜单,菜单的具体结构和信息是之前不知道的(因此不能利用工具构造),点击不同类型的菜单会触发特定的一类事件(需要动态绑定事件)。这种需求实际是蛮不BT的,很多场合下都可能会有,用C#写了个Demo花了不到半个小时。但转到MFC下来写,就费尽周折。其实这个问题代表了在MFC中动态创建资源绑定事件的一般性问题,所以总结一下。  &#...
阅读全文
2012-08-29 15:00 工业·编程 ⁄ 共 677字 暂无评论
    标准的menu或者button消息映射句柄类似于下面这种形式:        ON_COMMAND(ID_MYCOMMAND, OnMyCommand)      但是如果你是动态创建的button/menu项,你可能在编译时无法知道命令ID(COMMAND ID).,它可能被存储在一个数据成员里,类似于CSqueegie::m_nMeMyMineID。怎么办呢?     很简单:用ON_COMMAND_EX_ RANGE表示不受限制的范围。 ON...
阅读全文
2012-08-29 14:55 工业·编程 ⁄ 共 3827字 暂无评论
    动态创建就是运行时创建指定类的对象,在MFC中大量使用。如框架窗口对象、视对象,还有文档对象都需要由文档模板类对象来动态的创建。     初次接触MFC时,有这样的迷惘:MFC的几大类不用我们设计,也不用我们实例化对象。本来直观的理解是,需要框架时,自己写CFrameWnd myFrame;需要视时,自己写CView myView;……     写MFC程序时,我们几乎要对每个大类进行派生改写。换句...
阅读全文
2012-08-29 13:08 工业·编程 ⁄ 共 1661字 暂无评论
    precreatewindow是在在现有应用程序中更改样式。如果是正在现有应用程序中更改窗口属性,则遵循本文其余部分的说明。     若要更改框架应用程序(用应用程序向导创建的)所使用的默认窗口属性,请重写窗口的 PreCreateWindow 虚拟成员函数。     PreCreateWindow 允许应用程序访问通常由 CDocTemplate 类内部管理的创建进程。框架在即将创建窗口前调用 PreCreateWindow。通过...
阅读全文