技术 / 设计

[VC & MFC] 动态创建View的几个方法

Posted by 妖刀 23 August, 2006 (0) Comment

  1. 如果是在CSplitterWnd内,可以如下方法:
    CCreateContext context;
    context.m_pNewViewClass = pViewClass;
    context.m_pCurrentDoc = pDoc;
    context.m_pNewDocTemplate = NULL;
    context.m_pLastView = NULL;
    context.m_pCurrentFrame = NULL;

    pSplitter->CreateView(row,col,pViewClass,size, &context);
    其中pViewClass是你要创建的View类的RUNTIME_CLASS,pSplitter是指向CSplitterWnd的指针。

  2. 在FrameWnd内,创建作为FrameWnd子窗口的View类:
    // the third way, use framewnd.
    CCreateContext ccx;
    ccx.m_pNewViewClass = RUNTIME_CLASS(CMainView);

    // here "this" means the framewnd.
    m_pMainView = DYNAMIC_DOWNCAST( CMainView, this->CreateView(&ccx) );

  3. 在其他任何地方创建View类:
    CView* pNewView = View*)pViewClass->CreateObject();
    pNewView->Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,
    CRect(0,0,0,0),pSplitter,
    pSplitter->IdFromRowCol(row, col),&context);

其他:

  1. 创建完毕后,可以使用如下代码更新显示View:
    SetActiveView(pNewView);

    pSplitter->RecalcLayout();
    pNewView->OnInitialUpdate();
    pNewView->SendMessage(WM_PAINT);

  2. 可以使用下面的代码删除某个View,比如旧的View:
    pDoc->m_bAutoDelete = FALSE;
    pOldView->DestroyWindow();
    pDoc->m_bAutoDelete = TRUE;
  3. 下面代码可以设置View的ID:
    ::SetWindowLong(pOldActiveView->m_hWnd, GWL_ID, 0);
    ::SetWindowLong(pNewView->m_hWnd, GWL_ID, pSplitter->IdFromRowCol(row, col));
  4. 使用GetDlgItem()也可以根据ID来得到一个View的指针,这个是很方便的;
  5. 可以使用m_pMainView->ResizeParentToFit(FALSE);来使得父窗口从新调整大小。

Categories : 技术 / 设计 Tags :

[VC & MFC] 编译错误C1010

Posted by 妖刀 21 August, 2006 (0) Comment

问题:编译时,出现“fatal error C1010: unexpected end of file while looking for precompiled header directive”错误。

回答:可以使用右键点击项目工程中的该cpp文件,选择setting,在c/c++栏,选择PreCompiled headers,然后选择不使用预编译头,解决这个问题。

Categories : 技术 / 设计 Tags :

[VC & MFC] MFC Grid Ctrl 2.26

Posted by 妖刀 21 August, 2006 (0) Comment

使用方法:

  1. 将MFC Grid Ctrl的文件加入项目的源文件内;
  2. 在要使用MFC Grid Ctrl的文件内加上#include "gridctrl.h";
  3. 在要使用GridCtrl的对话框,或者FormView内加入一个成员变量,类型是CGridCtrl;
  4. 在对话框或者FormView的资源内,加入一个custom控件,其class为“MFCGridCtrl”;
  5. 在该对话框或者FormView的DDX部分,加入DDX_GridControl(pDX, IDC_CUSTOM1, m_grid);
  6. 最后,调用CGridCtrl的成员函数即可正常使用MFC Grid Ctrl了。

Categories : 技术 / 设计 Tags :

[wordpress插件] Post Templates by Category

Posted by 妖刀 18 August, 2006 (0) Comment

这个插件可以让你对某一个分类使用不同的模板文件。

使用方式:假设你有一个分类叫“软件”,它的id是5,那么你只需要在模板目录内加入一个“single-cat-5.php”,这个文件就将作为“软件”这一分类的模板,起来分类不受影响。

Categories : 技术 / 设计 Tags :

[wordpress插件] Sidebar Widgets

Posted by 妖刀 18 August, 2006 (0) Comment

这个插件可以让你在后台对sidebar进行可视化的操作,可以用直接拖动的方式来调整sidebar内元素的位置,需要theme的支持。

附带的widget有:del.icio.us widget,Google Search widget等。还有一个叫做Samsarin PHP Widget的插件,可以让你直接添加PHP代码等。

Categories : 技术 / 设计 Tags :

[wordpress插件] Ultimate Tag Warrior

Posted by 妖刀 18 August, 2006 (0) Comment

大名鼎鼎的tag插件,同样可以在天佑blog找到完整的教程。

Categories : 技术 / 设计 Tags :

[wordpress插件] Extended Live Archive

Posted by 妖刀 18 August, 2006 (0) Comment

提供一个ajax效果的Live Archive,可以在天佑Blog上找到很完整的教程。

Categories : 技术 / 设计 Tags :

[wordpress插件] 几个插件介绍

Posted by 妖刀 18 August, 2006 (0) Comment

  1. Attach Files:让你的文章可以带附件,激活后在文章撰写页面就多出了附件上传的界面。下载
  2. Adhesive:可以让某一篇文章置顶的插件。下载
  3. Home-Page Control:这个插件可以让某一篇文章作为用户进入网站时的首页。下载
  4. Get Custom:可以轻松的取得custom field的值。下载
  5. Get a Post:提供一个函数让你得到某一特定的文章内容。下载
  6. HeadSpace2:提供两个输入框让你输入某个页面的description和keyword。下载
  7. ImageManager:功能强大的图片管理插件,可以创建缩略图,新建子文件夹,上传图片等。下载
  8. Manage Me:一个后台管理的插件,可以让你方便的查找、操作posts。很实用。下载
  9. Page View:在页面内提供一个框架,可以包含另一个页面。下载
  10. Custom field gui:使用配置文件的方式往编辑页面内添加输入界面,可以更方便和可视化的方式来输入custom field。下载
  11. iG:Syntax Hiliter:代码高亮插件。下载
  12. Google Sitemaps:可以生成google sitemap文件的插件。下载
  13. Static Front Page:很Home page那个插件的功能差不多。下载
  14. Search Hilite:搜索时,将搜索到的关键词加亮。下载
  15. WP Category Posts:列出某一个分类下的文章的列表,对将wordpress变成一个CMS很有作用。下载
  16. Yskin's wp-CJK-excerpt:中文摘要插件。下载
  17. Thumb in Post:Post中加入缩略图片的插件。下载
  18. Marekkis Watermark-Plugin:给图片加水印的插件。下载
  19. Text Control:可以使用多种格式来撰写你的文章,比如Textile 1+2, Markdown等。下载
  20. Flash Quicktag:添加一个插入Flash的按钮,让你可以更加方便的插入flash文件。下载
  21. Edit Button Template、Edit Button Framework:严格来说,这两个不是插件,这两个是插件的框架,让你撰写的插件能够往编辑器内添加按钮等。下载
  22. Drain Hole:统计某个目录下的文件下载情况的插件。下载
  23. Categories : 技术 / 设计 Tags :

[wordpress插件] Post image

Posted by 妖刀 17 August, 2006 (0) Comment

如果你需要每一篇文章都附带一张图片,你又不希望每次都要插入相关的html代码的话,你可以使用这个插件。

这个来自guff的插件,让你能够在每篇文章插入一个图片。

使用方法:

  1. 激活后,在theme文件内,需要显示图片的地方加入<?php post_image(); ?>,可以在参数内指定默认图片;
  2. 在撰写文章的时候,加入一个名为post-image的custom field,其值为图片地址。

Categories : 技术 / 设计 Tags :

[wordpress插件] Related posts

Posted by 妖刀 17 August, 2006 (1) Comment

Related posts

这个是用来显示相关文章的插件,但不是老外的那个。来自lifesinger

用法:在需要实现Related Posts的地方(比如sidebar.php),调用<?php related_posts(); ?>即可。

Categories : 技术 / 设计 Tags :