VC高级编程总结1.docx
- 文档编号:9463457
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:28
- 大小:22.43KB
VC高级编程总结1.docx
《VC高级编程总结1.docx》由会员分享,可在线阅读,更多相关《VC高级编程总结1.docx(28页珍藏版)》请在冰点文库上搜索。
VC高级编程总结1
VisualC++编程总结
(1).doc
作者:
lizd0813@
说明:
供有兴趣的个人参考,如要大篇幅使用,联系作者,本人也是总结别人的程序总结的。
001编辑框的显示、清除、复制、取消操作等1
002编辑框和复选框的使能、不使能、显示、隐藏等操作2
003滚动条的范围设置、位置设置、获取位置等操作3
004为复选框BN_CLICKED的响应3
005单选按纽的初始化和使用4
006组合框的初始化和使用5
007 组合框的响应5
008列表框的初始化和使用6
009菜单和工具拦中按钮的对应关系6
010位图的显示6
011字符串中特定字符的查询7
012CstringList的使用7
013对话框和视图类对数据的更新8
014执行别的应用程序8
015一个按钮状态的切换9
016系统时间获取的两种方式9
017高精度系统时间的获取10
018在静态控件上画坐标和图10
019动态库程序的编写11
020动态连接库的加载12
021自定义消息的实现12
022线程的启动(无参数)13
023线程的启动(有参数)13
024多线程画线的操作14
025文件的打开、读写、关闭15
026文件的块读写16
027字母转变成16进制16
028串口RS232的打开、发送、接受和关闭18
029获得磁盘的驱动器20
030获得、创建和删除系统的相关目录路径21
031文件的拷贝、删除、移动22
032*文件的操作23
033*文件的操作24
034*文件的操作25
035*应用程序的文件映射26
036多媒体定时器的使用27
037多媒体定时器的应用29
038画笔和画刷的使用31
039网页的操作前进、后退、停止、回主页、刷新32
001编辑框的显示、清除、复制、取消操作等
Ceditm_Edit1;
voidCControlDlg:
:
OnButshow1()
{
m_Edit1.SetSel(0,-1);
m_Edit1.ReplaceSel("welcomeyou,thisisoneeditbox1");
}
voidCControlDlg:
:
OnButclear1()
{
m_Edit1.SetSel(0,-1);
m_Edit1.ReplaceSel("");
}
voidCControlDlg:
:
OnButcopy()
{
m_Edit1.SetSel(0,-1);
m_Edit1.Copy();
m_Edit2.SetSel(0,-1);
m_Edit2.ReplaceSel("");
m_Edit2.Paste();
}
voidCControlDlg:
:
OnButundo()
{
//m_Edit1.SetSel(0,-1);
m_Edit1.Undo();
//m_Edit2.SetSel(0,-1);
m_Edit2.Undo();
}
002编辑框和复选框的使能、不使能、显示、隐藏等操作
CEditm_TimeEdit;
CEditm_DateEdit;
voidCControlDlg:
:
OnButdisenable()
{
GetDlgItem(IDC_CHEDATE)->EnableWindow(FALSE);
GetDlgItem(IDC_CHETIME)->EnableWindow(FALSE);
m_DateEdit.EnableWindow(FALSE);
m_TimeEdit.EnableWindow(FALSE);
}
voidCControlDlg:
:
OnButenable()
{
GetDlgItem(IDC_CHEDATE)->EnableWindow(TRUE);
GetDlgItem(IDC_CHETIME)->EnableWindow(TRUE);
m_DateEdit.EnableWindow(TRUE);
m_TimeEdit.EnableWindow(TRUE);
}
voidCControlDlg:
:
OnButhide()
{
GetDlgItem(IDC_CHEDATE)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_CHETIME)->ShowWindow(SW_HIDE);
m_DateEdit.ShowWindow(SW_HIDE);
m_TimeEdit.ShowWindow(SW_HIDE);
}
voidCControlDlg:
:
OnButshow()
{
GetDlgItem(IDC_CHEDATE)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_CHETIME)->ShowWindow(SW_SHOW);
m_DateEdit.ShowWindow(SW_SHOW);
m_TimeEdit.ShowWindow(SW_SHOW);
}
003滚动条的范围设置、位置设置、获取位置等操作
CScrollBarm_ScrollBar;
m_ScrollBar.SetScrollRange(0,100);
m_ScrollBar.SetScrollPos(30);
charch[10];
itoa(m_ScrollBar.GetScrollPos(),ch,10);
m_Edit3.SetSel(0,-1);
m_Edit3.ReplaceSel(ch);
UpdateData(FALSE);
voidCControlDlg:
:
OnButleft()
{
m_ScrollBar.SetScrollPos(0);
m_Edit3.SetSel(0,-1);
m_Edit3.ReplaceSel("0");
UpdateData(FALSE);
}
004为复选框BN_CLICKED的响应
//为复选框定义一个BOOL变量,复选框选中与否对应的的消息BN_CLICKED,在消息响应函数中,根据复选框的变量决定如何对应的操作。
voidCControlDlg:
:
OnChedate()
{
UpdateData(TRUE);
if(m_DateChk==TRUE)
{
CTimetm;
tm=CTime:
:
GetCurrentTime();
CStringstr=tm.Format("%y.%m.%d");
m_DateEdit.SetSel(0,-1);
m_DateEdit.ReplaceSel(str);
}
else
{
m_DateEdit.SetSel(0,-1);
m_DateEdit.ReplaceSel("");
}
UpdateData(FALSE);
}
voidCControlDlg:
:
OnChetime()
{
UpdateData(TRUE);
if(m_TimeChk)
{
CTimetm;
tm=CTime:
:
GetCurrentTime();
CStringstr=tm.Format("%I:
%M:
%S");
m_TimeEdit.SetSel(0,-1);
m_TimeEdit.ReplaceSel(str);
}
else
{
m_TimeEdit.SetSel(0,-1);
m_TimeEdit.ReplaceSel("");
}
UpdateData(FALSE);
}
005单选按纽的初始化和使用
//INITRADIOBOX
CheckRadioButton(IDC_RADIO_MALE,IDC_RADIO_FEMALE,IDC_RADIO_MALE);
CheckRadioButton(IDC_RADIO_OLD,IDC_RADIO_CHILD,IDC_RADIO_OLD);
voidCControl2Dlg:
:
OnButtonShow()
{
UpdateData(TRUE);
charch[30];
intradiomale,radioold;
radiomale=GetCheckedRadioButton(IDC_RADIO_MALE,IDC_RADIO_FEMALE);
if(radiomale==IDC_RADIO_MALE)//这里涉及到字符串的拷贝和连接
strcpy(ch,"hesia");
if(radiomale==IDC_RADIO_FEMALE)
strcpy(ch,"sheisa");
radioold=GetCheckedRadioButton(IDC_RADIO_OLD,IDC_RADIO_CHILD);
if(radioold==IDC_RADIO_OLD)
strcat(ch,"old");
if(radioold=IDC_RADIO_YOUNG)
strcat(ch,"young");
if(radioold==IDC_RADIO_CHILD)
strcat(ch,"child");
CStringstr;
str=_T(ch);
m_ShowEdit.SetSel(0,-1);
m_ShowEdit.ReplaceSel(str);
}
006组合框的初始化和使用
//INITCComboBoxm_JobCom;
m_JobCom.AddString("student");
m_JobCom.AddString("worker");
m_JobCom.AddString("teacher");
m_JobCom.AddString("enginer");
m_JobCom.SelectString(-1,"worker");
//NOTICETHISSENTENCE
charch1[20];
CStringstr;
m_JobCom.GetWindowText(ch1,15);
//也可以使用m_JobCom.GetWindowText(str);
strcat(ch,ch1);
str=_T(ch);
007 组合框的响应
//选择项目后,立即响应,应选择对CBN_SELECTCHANGE消息的响应
//CComboBoxm_comopen;
voidCCtrMirrorDlg:
:
OnSelchangeComcloseY()
{
CStringserv;
intindex;
index=m_comopen.GetCurSel();
//闭环控制或开环控制的传送
if(index!
=CB_ERR)
{
m_comopen.GetLBText(index,serv);
if(serv=="SERVON")
{
MessageBox(“theselectedresultisSERVON”);
}
UpdateData(FALSE);
}
}
008列表框的初始化和使用
//initCListBoxm_SentenceList;
m_SentenceList.AddString("thisisonedesk");
m_SentenceList.AddString("thisisonebook");
m_SentenceList.AddString("thisisonecomputer");
m_SentenceList.AddString("thisisonepen");
//noticethissentence
intnum;
charch2[20];
num=m_SentenceList.GetCurSel();
m_SentenceList.GetText(num,ch2);
strcat(ch,ch2);
//noticeCStringm_ComEdit;
m_ComEdit=_T(ch);
UpdateData(FALSE);
009菜单和工具拦中按钮的对应关系
010位图的显示
voidCBITMAPView:
:
OnDraw(CDC*pDC)
{
CBITMAPDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
//TODO:
adddrawcodefornativedatahere
CBitmapbitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CDCmemdc;
memdc.CreateCompatibleDC(pDC);
CBitmap*poldbitmap=memdc.SelectObject(&bitmap);
BITMAPbm;
bitmap.GetObject(sizeof(BITMAP),&bm);
pDC->BitBlt(130,20,bm.bmWidth,bm.bmHeight,&memdc,0,0,SRCCOPY);
memdc.SelectObject(poldbitmap);
}
011字符串中特定字符的查询
chartime[13];
time=”4:
50:
36.000”;
CStrings(time,13);
inta[4],b[4];
intFromPos=0;
intToPos=0;
CstringID;
ToPos=s.Find(':
',FromPos);
CStringID;
if(ToPos!
=-1)
{
ID=s.Mid(FromPos,ToPos-FromPos);
MessageBox(ID);
}
FromPos=ToPos+1;
ToPos=s.Find(':
',FromPos);
ID=s.Mid(FromPos,ToPos-FromPos);
MessageBox(ID);
FromPos=ToPos+1;
ToPos=s.Find('.',FromPos);
ID=s.Mid(FromPos,ToPos-FromPos);
MessageBox(ID);
FromPos=ToPos+1;
ToPos=s.Find(':
',FromPos);
ID=s.Mid(FromPos);
MessageBox(ID);
012CstringList的使用
voidCStrListDlg:
:
OnButUselist()
{
CStringListm_satList;
POSITIONpos=m_satList.GetHeadPosition();
inti;
CStringstr;
for(i=0;i<100;i++)
{
str.Format("%d",i);
m_satList.AddTail(str);
}
pos=m_satList.GetHeadPosition();
str="35";
pos=m_satList.Find(str,NULL);//以字符串作为检索条件,返回pos
str=m_satList.GetNext(pos);//以pos作为检索条件,返回字符串
MessageBox(str);
str=m_satList.GetAt(pos);//以pos作为检索条件,返回字符串
MessageBox(str);
str=m_satList.GetHead();
while(pos!
=NULL)
{
str=m_satList.GetNext(pos);
MessageBox(str);
}
pos=m_satList.FindIndex(50);/以index作为检索条件,返回pos
while(pos!
=NULL)
{
str=m_satList.GetNext(pos);
MessageBox(str);
}
}
013对话框和视图类对数据的更新
UpdateData(FALSE);
Invalidate(FALSE);
014执行别的应用程序
voidCDlgdis:
:
OnButton1()
{
//:
:
ShellExecute(0,"open","D:
/BOOK1.XLS",NULL,NULL,0);
:
:
ShellExecute(0,"open","d:
/EXCEL.EXE","D:
/BOOK1.XLS","D:
/BOOK1.XLS",SW_SHOW);
//:
:
ShellExecute(0,"open","d:
/EXCEL.EXE","D:
/INSERT.TXT","D:
/INSERT.TXT",SW_SHOW);
}
015一个按钮状态的切换
//CButtonm_bConn;
voidCCtrMirrorDlg:
:
OnBUTConn()
{
CStringitem;
m_bConn.GetWindowText(item);
//通过设置远程控制或本地控制,完成或断开程序与快反镜的连接
if(item=="Connect")
{
syssite="DEV:
CONTREM\n";
writeresult=WriteFile(hcom,syssite.GetBuffer(0),syssite.GetLength(),&writednum,NULL);
m_bConn.SetWindowText("DisConnect");
}
//断开与快反镜的连接
else
{
syssite="DEV:
CONTLOC\n";
writeresult=WriteFile(hcom,syssite.GetBuffer(0),syssite.GetLength(),&writednum,NULL);
m_bConn.SetWindowText("Connect");
}
}
016系统时间获取的两种方式
#include"TIME.H"
#include"SYS\TIMEB.H"
voidCKjfdksDlg:
:
OnButton1()
{
/*SYSTEMTIMEst;
GetSystemTime(&st);*/
CStrings;
struct_timebtimebuffer;
char*timeline;
_ftime(&timebuffer);
timeline=ctime(&(timebuffer.time));
//s.Format("%.19s.%hu%s",timeline,timebuffer.millitm,&timeline[20]);
//s.Format("%10s:
%hu",timeline,timebuffer.millitm);
s=_T(timeline);
CStringmi;
mi.Format("%d",timebuffer.millitm);
s=s+mi;
s=s.Right(17);
mi=s.Right(3);
s=s.Left(9);
s=s+mi;
s.Format("%d:
%d:
%d:
%d",st.wHour,st.wMinute,st.wSecond,st.wMilliseconds);
MessageBox(s);
}
017高精度系统时间的获取
voidCMultiTimerDlg:
:
OnBgetfre()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
LARGE_INTEGERli;
LONGLONGll1,ll2,ll3;
intsum=0;
QueryPerformanceFrequency(&li);
ll1=li.QuadPart;
m_sFre.Format("%d",li.QuadPart);
UpdateData(FALSE);
QueryPerformanceCounter(&li);
ll2=li.QuadPart;
m_sStCou.Format("%d",li.QuadPart);
UpdateData(FALSE);
for(inti=0;i<65535;i++)
{
sum++;
}
QueryPerformanceCounter(&li);
ll3=li.QuadPart;
m_sSpCou.Format("%d",li.QuadPart);
UpdateData(FALSE);
m_sTime.Format("%d",(ll3-ll2)*1000000/ll1);
UpdateData(FALSE);
}
018在静态控件上画坐标和图
/*CWnd*pWnd;
CDC*pdc;
CPennewpen;
CPen*oldpen;*/
GetDlgItem(IDC_EDIT_lead)->ShowWindow(SW_HIDE);
pWnd=GetDlgItem(IDC_DRAW1);
pdc=pWnd->GetDC();
RECTrect;
m_draw1.GetWindowRect(&rect);
newpen.CreatePen(PS_SOLID,1,RGB(255,0,0));
oldpen=pdc->SelectObject(&newpen);
for(inti=0;i<7;i++)
{
pdc->MoveTo(0,i*(rect.bottom-rect.top)/6);
pdc->LineTo(rect.right-rect.left,i*(rect.bottom-rect.top)/6);
}
for(intj=0;j<11;j++)
{
pdc->MoveTo((rect.right-rect.left)*j/10,0);
pdc->LineTo((rect.right-rect.left)*j/10,rect.bottom-rect.top);
}
019动态库程序的编写
//要在两个文件中填加一些内容,就是.def文件和.cpp文件
;DLL.def:
DeclaresthemoduleparametersfortheDLL.
LIBRARY"DLL"
DESCRIPTION'DLLWindowsDynamicLinkLibrary'
EXPORTS
;Explicitexportscangohere
message
;
//DLL.cpp:
DefinestheinitializationroutinesfortheDLL.
//
#include"stda
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 高级 编程 总结
![提示](https://static.bingdoc.com/images/bang_tan.gif)