WEB开发网
开发学院软件开发VC 用VC++创建自定义向导程序 阅读

用VC++创建自定义向导程序

 2010-06-04 20:37:50 来源:WEB开发网   
核心提示:3. 在CWizard添加要使用的数据结构为了方便描述,表2列出了使用到的成员变量(表2) 成员变量 类型 说明 rectPage CRect

3. 在CWizard添加要使用的数据结构

为了方便描述,表2列出了使用到的成员变量

(表2)

成员变量 类型 说明
rectPage CRect 每页显示的范围
nPageCount UINT 页的总数
nCurrentPage UINT 正在显示的页
nPageLink PAGELINK* 用来链接所有的页
typedef struct PAGELINK{

UINT nNum;

CDialog* pDialog;

struct PAGELINK* Next;};

nNum为页的编号

pDialog为页所对应的对话框的指针

4. CWizard所使用到的函数 添加一个新页到Wizard框架,入口参数为要添加的对话框指针和ID

void CWizard::AddPage(CDialog* pDialog, UINT nID)
{
  struct PAGELINK* pTemp = pPageLink;
  //插入新生成的结点
  struct PAGELINK* pNewPage = new PAGELINK;
  pNewPage->pDialog = pDialog;
  pNewPage->pDialog->Create(nID,this); // 以无模式创建窗口
 ASSERT(::IsWindow(pNewPage->pDialog->m_hWnd));
 // 检查每页的样式
 DWORD dwStyle = pNewPage->pDialog->GetStyle();
 ASSERT((dwStyle & WS_CHILD) != 0); // 子窗口
 ASSERT((dwStyle & WS_BORDER) == 0); // 无边界
 // 显示
 pNewPage->pDialog->ShowWindow(SW_HIDE); //先隐藏,需要时再显示
 pNewPage->pDialog->MoveWindow(rectPage);
 //移动对话框到制定位置,rectPage已经初始化了
 pNewPage->Next=NULL;
 pNewPage->nNum=++nPageCount; //计数器加1
 if (pTemp) //插入到链表
 { //如果不是空链表
  while (pTemp->Next) pTemp=pTemp->Next; // 移动链表末尾
  pTemp->Next=pNewPage;
 }
 else // 空链表
  pPageLink=pNewPage; //若是第一个节点
 }

上一页  1 2 3 4 5  下一页

Tags:VC 创建 定义

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接