| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1262 人关注过本帖
标题:关于CDialog的制作
只看楼主 加入收藏
依依
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-5-15
收藏
 问题点数:0 回复次数:4 
关于CDialog的制作


该Dialog实例如下,我不懂有些方法的使用,下面我对不懂的地方及问题做了注释,
CDialog::OnInitDialog(); //这个实例是不是要写在我建的类里?函数类型为BOOL?

// TODO: Add extra initialization here

char szTemp[30];

CString szBuffer,szSQL;

CListView * pView = (CListView*)GetDlgItem(IDC_JX_list) //GetDlgItem(这里面的参数是什么?)函数什么意思?
CListCtrl& ctrl = pView->GetListCtrl();

ctrl.InsertColumn(0, "流水号", LVCFMT_LEFT, 80);

ctrl.InsertColumn(1, "型号", LVCFMT_LEFT, 100);

ctrl.InsertColumn(2, "价格", LVCFMT_LEFT, 80);

ctrl.InsertColumn(3, "供货商", LVCFMT_LEFT, 140);

ctrl.InsertColumn(4, "供货日期", LVCFMT_LEFT, 80);

ctrl.InsertColumn(5, "收货人", LVCFMT_LEFT, 80);

ctrl.InsertColumn(6, "标志", LVCFMT_LEFT, 60);

ctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);

SetDlgItemText(IDC_JX_JGedit, "0.00"); //SetDlgItemText(里面的参数又是什么?)函数什么意思?

CDatabase db;

CDBVariant varValue;

CRecordset rs(&db);

CString szDSN = "DSN=faxline;UID=SA;PWD=";

db.OpenEx(szDSN);

CComboBox * pCombo = (CComboBox*)GetDlgItem(IDC_JX_GYcom); //这是对于对话框上有组合框的应用吗?如果对话框上没有这个组合框是不是不用这个呢?还有如果对话框上只有两个下压按钮,一个Edit,那么想通过输入Edit内容,按确定之后在列表里面显示所要查询的内容,怎么做呢?

szSQL = "SELECT (供应商) FROM fgongying";

rs.Open(AFX_DB_USE_DEFAULT_TYPE, szSQL);

while (!rs.IsEOF()) {

rs.GetFieldValue("供应商", varValue, SQL_C_CHAR);

szBuffer = *varValue.m_pstring;

pCombo->AddString(szBuffer);

rs.MoveNext();

}

rs.Close();

pCombo->SetCurSel(0);

szBuffer = CTime::GetCurrentTime().Format("%Y%m%d"); //这是什么意思

SetDlgItemText(IDC_JX_RQedit, szBuffer);

szSQL = "SELECT (流水号),(型号),(价格),(供货商),(供货日期),(收货人),(标志) FROM fjixiang WHERE 标志='0' ORDER BY 供货日期 DESC";

rs.Open(AFX_DB_USE_DEFAULT_TYPE, szSQL);

while (!rs.IsEOF()) {

rs.GetFieldValue("流水号", varValue, SQL_C_CHAR);

strcpy(szTemp, varValue.m_pstring->GetBuffer(50));

int nItem = ctrl.InsertItem(ctrl.GetItemCount(), szTemp);

rs.GetFieldValue("型号", varValue, SQL_C_CHAR);

strcpy(szTemp, varValue.m_pstring->GetBuffer(50));

ctrl.SetItemText(nItem, 1, szTemp);

rs.GetFieldValue("价格", varValue, SQL_C_FLOAT);

sprintf(szTemp, "%.2f", varValue.m_fltVal);

ctrl.SetItemText(nItem, 2, szTemp);

rs.GetFieldValue("供货商", varValue, SQL_C_CHAR);

strcpy(szTemp, varValue.m_pstring->GetBuffer(50));

ctrl.SetItemText(nItem, 3, szTemp);

rs.GetFieldValue("供货日期", varValue, SQL_C_CHAR);

strcpy(szTemp, varValue.m_pstring->GetBuffer(50));

ctrl.SetItemText(nItem, 4, szTemp);

rs.GetFieldValue("收货人", varValue, SQL_C_CHAR);

strcpy(szTemp, varValue.m_pstring->GetBuffer(50));

ctrl.SetItemText(nItem, 5, szTemp);

rs.GetFieldValue("标志", varValue, SQL_C_CHAR);

strcpy(szTemp, varValue.m_pstring->GetBuffer(50));

ctrl.SetItemText(nItem, 6, szTemp);

rs.MoveNext();

}

rs.Close();

db.Close();

GetDlgItem(IDC_JX_dj)-> EnableWindow(FALSE); //这是在做什么?

GetDlgItem(IDC_JX_xg)-> EnableWindow(FALSE);

GetDlgItem(IDC_JX_sc)-> EnableWindow(FALSE);

return TRUE;






本人的水平真的很差,请大家不要嫌麻烦,帮我看看吧,最好是把每一段具体做什么,帮我做一下注释,好吗?谢谢了

搜索更多相关主题的帖子: CDialog 制作 
2006-06-03 09:29
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
CDialog::OnInitDialog(); //这个实例是不是要写在我建的类里?函数类型为BOOL?对,VC会自动给你加这行字,保证CDialog的默认行为

// TODO: Add extra initialization here

char szTemp[30];

CString szBuffer,szSQL;

CListView * pView = (CListView*)GetDlgItem(IDC_JX_list) //GetDlgItem(这里面的参数是什么?)函数什么意思?参数是所要找的window control 的ID,在resource.h中可以看到。这个函数如果找到响应的控件,就返回其指针,(CWnd型)。程序已经知道它是个listview,所以强制转换成CListView*类。
CListCtrl& ctrl = pView->GetListCtrl();

ctrl.InsertColumn(0, "流水号", LVCFMT_LEFT, 80);

ctrl.InsertColumn(1, "型号", LVCFMT_LEFT, 100);

ctrl.InsertColumn(2, "价格", LVCFMT_LEFT, 80);

ctrl.InsertColumn(3, "供货商", LVCFMT_LEFT, 140);

ctrl.InsertColumn(4, "供货日期", LVCFMT_LEFT, 80);

ctrl.InsertColumn(5, "收货人", LVCFMT_LEFT, 80);

ctrl.InsertColumn(6, "标志", LVCFMT_LEFT, 60);

ctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);

SetDlgItemText(IDC_JX_JGedit, "0.00"); //SetDlgItemText(里面的参数又是什么?)函数什么意思?将ID为IDC_JX_JGedit的控件的显示文字设为"0.00"

CDatabase db;

CDBVariant varValue;

CRecordset rs(&db);

CString szDSN = "DSN=faxline;UID=SA;PWD=";

db.OpenEx(szDSN);

CComboBox * pCombo = (CComboBox*)GetDlgItem(IDC_JX_GYcom); //这是对于对话框上有组合框的应用吗?如果对话框上没有这个组合框是不是不用这个呢?还有如果对话框上只有两个下压按钮,一个Edit,那么想通过输入Edit内容,按确定之后在列表里面显示所要查询的内容,怎么做呢?对,其实这种做法比较危险,如果以后不小心把combo box的ID换成别的而忘了改这行字了程序立刻crash。比较好的办法是用class wizard 给每个控件加对应的变量。

szSQL = "SELECT (供应商) FROM fgongying";

rs.Open(AFX_DB_USE_DEFAULT_TYPE, szSQL);

while (!rs.IsEOF()) {

rs.GetFieldValue("供应商", varValue, SQL_C_CHAR);

szBuffer = *varValue.m_pstring;

pCombo->AddString(szBuffer);

rs.MoveNext();

}

rs.Close();

pCombo->SetCurSel(0);

szBuffer = CTime::GetCurrentTime().Format("%Y%m%d"); //这是什么意思拿到windows的当前时间并将其转换成年-月-日型的字串格式

SetDlgItemText(IDC_JX_RQedit, szBuffer);

szSQL = "SELECT (流水号),(型号),(价格),(供货商),(供货日期),(收货人),(标志) FROM fjixiang WHERE 标志='0' ORDER BY 供货日期 DESC";

rs.Open(AFX_DB_USE_DEFAULT_TYPE, szSQL);

while (!rs.IsEOF()) {

rs.GetFieldValue("流水号", varValue, SQL_C_CHAR);

strcpy(szTemp, varValue.m_pstring->GetBuffer(50));

int nItem = ctrl.InsertItem(ctrl.GetItemCount(), szTemp);

rs.GetFieldValue("型号", varValue, SQL_C_CHAR);

strcpy(szTemp, varValue.m_pstring->GetBuffer(50));

ctrl.SetItemText(nItem, 1, szTemp);

rs.GetFieldValue("价格", varValue, SQL_C_FLOAT);

sprintf(szTemp, "%.2f", varValue.m_fltVal);

ctrl.SetItemText(nItem, 2, szTemp);

rs.GetFieldValue("供货商", varValue, SQL_C_CHAR);

strcpy(szTemp, varValue.m_pstring->GetBuffer(50));

ctrl.SetItemText(nItem, 3, szTemp);

rs.GetFieldValue("供货日期", varValue, SQL_C_CHAR);

strcpy(szTemp, varValue.m_pstring->GetBuffer(50));

ctrl.SetItemText(nItem, 4, szTemp);

rs.GetFieldValue("收货人", varValue, SQL_C_CHAR);

strcpy(szTemp, varValue.m_pstring->GetBuffer(50));

ctrl.SetItemText(nItem, 5, szTemp);

rs.GetFieldValue("标志", varValue, SQL_C_CHAR);

strcpy(szTemp, varValue.m_pstring->GetBuffer(50));

ctrl.SetItemText(nItem, 6, szTemp);

rs.MoveNext();

}

rs.Close();

db.Close();

GetDlgItem(IDC_JX_dj)-> EnableWindow(FALSE); //这是在做什么?把ID为IDC_JX_dj的控件灰掉

GetDlgItem(IDC_JX_xg)-> EnableWindow(FALSE);

GetDlgItem(IDC_JX_sc)-> EnableWindow(FALSE);

return TRUE;


http://myajax95./
2006-06-03 10:24
依依
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-5-15
收藏
得分:0 
谢谢你哦~
2006-06-03 21:14
依依
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-5-15
收藏
得分:0 
请问一下,VC++6.0的MSDN在哪里能下到呢?
2006-06-04 04:25
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
好像这个帖子就是吧?如果不是问一下aogun。
http://www.bc-cn.net/bbs/dispbbs.asp?boardID=55&ID=60036&page=1

http://myajax95./
2006-06-04 07:33
快速回复:关于CDialog的制作
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018041 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved