随笔分类 - VC
摘要:一、ADO1、导入ADO动态数据库:#import "c:\program files\common files\system\ado\maado15.dll" no_namespace rename("EOF","adoEOF")2、初始化COM环境:::CoInitalize(NULL);::CoUninitalize();3、连接数据库:_ConnectionPtr pconnect(__uuidof(Connection));pconnect->ConnectionString="Provider=SQLOLE
阅读全文
摘要:一、创建工作者线程1、创建一个基于对话框的应用程序。2、在对话框上面添加一个按钮控件,其ID为ID_START,标题为“开始工作者线程”,再添加一个进度条控件,并利用类向导添加变量:CprogressCtrl m_progress;3、在C*Dlg.cpp中添加结构体如下:struct threadInfo{int i;CProgressCtrl * pctrlProgress;}Info;4、编写一个函数fun(),实现进度条的步进.UINT fun(LPVOID p){threadInfo * pInfo=(threadInfo *)p;for(int i=0;ii;pInfo->p
阅读全文
摘要:1、创建一个Win32的动态链接库工程,在C++源文件中编写代码如下:#include HHOOK g_hMouse=NULL;LRESULT CALLBACK MouseProc( int nCode, // hook code WPARAM wParam, // message identifier LPARAM lParam // mouse coordinates){ return 1;}void SetHook(){ g_hMouse=SetWindowsHookEx(WH_MOUSE,MouseProc,GetModuleHandle("MouseHook"),
阅读全文
摘要:1、创建一个Win32的动态链接库工程,在C++源文件中编写代码如下:#include HHOOK g_hKeyboard=NULL;LRESULT CALLBACK KeyboardProc( int code, // hook code WPARAM wParam, // virtual-key code LPARAM lParam // keystroke-message information){ return 1;}void SetHook(){ g_hKeyboard=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle
阅读全文
摘要://基于控制台的程序//模板类:CTypedPtrlist、CTypedPtrArray、CTypedPtrMap;添加MFC的支持,方法如下://Project|Settings命令,弹出Project Setting对话框,在General标签下的“Microsoft Foundation Classes”下选择Used MFC in Shared DLL项。#include #include //引入头文件class BASE //定义一个类{public:int x; //类的成员变量int y;};CTypedPtrList m_list; //模板列表void main(){in.
阅读全文
摘要:MFC一、创建DLL1、创建MFC动态链接库,在第4部选择“Regular DLL With MFC shared linked”类型,即创建与MFC动态链接的常规DLL,可以被Win32应用程序和MFC应用程序使用。2、添加函数。在生成的工程的test.h文件中添加语句如下:extern "C" void _declspec(dllexport)print();上面添加的是函数的声明语句,然后在.cpp文件中编写函数体。extern "C" void _declspec(dllexport)print(){ CString str="DLL&
阅读全文
摘要:打印过程:OnPreparePrinting()函数进行打印中一些信息的设置。OnBeginPrinting()函数创建打印资源。OnPrepareDC()函数设置具体打印一页时的信息。调用OnPrint()函数打印一页。1、在利用向导生成单文档和多文档应用程序的过程中,用户可以选择应用程序是否支持打印和打印预览功能。(在向导的第4部)2、将默认的MM_TEXT模式转换为MM_LOENGLISH模式。方法如下:SetMapMode(MM_LOENGLISH);3、多页打印: 在打印或打印预览时可以在OnBeginPrinting()函数中设置打印的页数。如:void CTestView::O.
阅读全文
摘要:基于TCP(面向连接)的Socket编程一、客户端:1、打开一个套接字(Socket);2、发起连接请求(connect);3、如果连接成功,则进行数据交换(read、write、send、recv);4、数据交换完成,关闭连接(shutdown、close);二、服务器端:1、打开一个套接字(Socket);2、将套接字绑定到服务器地址上(bind);3、指定套接字为服务器套接字(listen),做好连接请求准备;4、等待连接请求(connect);5、如果连接请求到,则连接建立,进行数据交换(read、write、send、recv);6、数据交换完成,关闭连接(shutdown、clos
阅读全文
摘要:1、void MySocket::OnConnect(int nErrorCode){ // TODO: Add your specialized code here and/or call the base class if(nErrorCode!=0) //连接失败 AfxMessageBox("端口关闭"); else AfxMessageBox("端口打开"); CAsyncSocket::OnConnect(nErrorCode);}2、 CString m_ipstr; MySocket m_socket;void CTestDlg::OnC
阅读全文
摘要:WinInet开发:1、添加一个下载按钮和一个保存地址按钮,和两个编辑框;并添加各自的变量;2、C*Dlg类添加成员变量:CString url;CString savefilename;3、保存地址按钮的消息映射函数:void CTestDlg::OnWhere() {// TODO: Add your control notification handler code hereGetDlgItemText(IDC_URL,url);if(url==""){AfxMessageBox("请填入URL地址");return;}//下面得到文件类型,即.后
阅读全文
摘要://先选择Project|setting命令下Project setting命令下对话框,在Microsoft Foundation Classes下选择 Use MFC in a Shared DLL#include#include//#include#define MAX_ALLSECTIONS 300 //定义最大的段长度#define MAX_SECTION 20 //段的最大长度void main(){ //2、节与健的枚举/* 1 健 DWORD GetPrivateProfileSection( LPCTSTR lpAppName, // section name LPTST..
阅读全文
摘要:(Memset()和Syscopy函数、获取当前路径、按钮的加载、获取当前窗口样式(GetWindowLongGRB())、设置或获取背景色、设或获取置文本背景色、设置或获取文本色、插入类表头、获取客户端大小、设置每列的宽度、设置扩展样式、插入项、获取所有项数、设置每项每列的文本,设置项选中状态、设置背景图片、删除所有项、获取系统颜色、向图片链表添加位图、获取当前位项置,获取当前项的下一项、获取列表控件的头)1、基本知识: m_list.SetBkColor(RGB(123,123,123)); m_list.SetTextBkColor(RGB(255,0,0)); m_list.SetTe
阅读全文
摘要:1、初始化:对话框属性中Selection项,选择Multiple m_listbox.AddString("Colomn1"); m_listbox.AddString("Colomn2"); m_listbox.AddString("Colomn3"); m_listbox.AddString("Colomn4"); m_listbox.InsertString(1,"Insert 1"); m_listbox.InsertString(2,"Insert 2");//
阅读全文
摘要://注册表查询//1CRegKey regkey;DWORD dValue;LPCTSTR lp="Console\\";if(regkey.Open(HKEY_CURRENT_USER,lp)==ERROR_SUCCESS)//打开{if(regkey.QueryValue(dValue,"WindowSize")==ERROR_SUCCESS)//进行查询{cout<<dValue<<endl;//输出查询到得值}else{cout<<"Query Error"<<endl;}reg
阅读全文
摘要:1、添加变量: HTREEITEM hDad; HICON hIcon; TV_INSERTSTRUCT tvinsert; CImageList m_imagelist;2、OnInitDialog()中初始化: // TODO: Add extra initialization here m_imagelist.Create(16,16,0,8,8); hIcon=AfxGetApp()->LoadIcon(IDI_ICON1); m_imagelist.Add(hIcon); CTreeCtrl * pTree=(CTreeCtrl *)GetDlgItem(IDC_TREE);
阅读全文
摘要:1、先把文件AMOVIE.OCX复制到某一目录下,例如D:\下,然后选择“开始”|“运行”命令,输入“regsvr32D:\AMOVIE.OCX”,单击“确定”按钮后,弹出对话框,显示注册成功。2、利用类向导,创建一个基于对话框的应用程序,删除向导自动生成的确定、取消按钮。选择Project?ADD。。。添加ActiveMovie Control Object选项。3、单击Insert按钮,关闭该对话框,ActiveMovie控件便出现在控件面板中,调整好控件在对话框中的位置。4、添加菜单资源。。5、添加工具栏。。。6、添加滑块控件,及变量。。。系统实现:1、设置对话框的最小化,对话框属性对话
阅读全文
摘要:主要代码如下:显示代码如下: CDC * pDialogDC = GetDC(); Invalidate(); UpdateWindow(); CPen pen(PS_SOLID,2,RGB(255,0,0)); pDialogDC->SelectObject(&pen); for (int i = 0;i picFlag) { case 0: pDialogDC->MoveTo(picVector[i]->startPoint); pDialogDC->LineTo(picVector[i]->endPoint); break; cas...
阅读全文
摘要:如果我们只想在某个空间窗口内绘图的话,则应避免重复绘制对话框元素。如果只想显示一些文本,我们可以利用对话框编辑器来创建一个具有特殊ID的空静态控件,然后在对话框的成员函数中调用CWnd::SetDlgItemText函数,以便在该控件中显示文本。 如果想显示图形的话,必须利用ClassWizard相对话框中加入OnPaint成员函数,该函数必须将静态控件的ID转换CWnd指针,然后在得到他的设备环境。这里的一个技巧就在于我们既要在控件窗口绘图,又要防止Windows对他进行重复绘制。我们可以通过利用Invalidate/UpdateWindow这一调用序列来达到这一效果。例:CWnd * pW
阅读全文