自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 (本来就能)跨进程的剪切板

void CMy0629ADlg::OnBnClickedButton1() //复制进剪切{ // TODO: Add your control notification handler code here if(this->OpenClipboard()) //打开剪切板 { CString str; // HANDLE hClip; //保存::Glob

2015-06-29 20:14:59 454

原创 异步选择机制聊天室

本程序在同一线程内实现了接收端和发送端,与上一章多线程聊天室 的结果类似在编写网络程序时,采用异步选择机制可能提高网络应用程序的性能,如果再配合多线程,将再进一步提高程序性能#include #pragma comment(lib, "ws2_32.lib")BOOL CMy0627AApp::InitInstance(){ CWinApp::InitInstanc

2015-06-28 20:10:15 507

原创 互斥对象 事件对象 关键代码段的比较

互斥对象与事件对象属于内核对象 速度慢 多个进程实现同步,可以使用互斥对象和关键代码段关键代码段 同步速度快 无法设定超时值 容易进入死锁 优先选择互斥对象HANDLE hMutex;::hMutex=::CreateMutexA(NULL,FALSE,NULL);::WaitForSingleObject(::hMutex,INFINITE);::Rele

2015-06-27 12:17:59 519

原创 关键代码段

#include "stdafx.h"#include #include #include using namespace std;DWORD WINAPI fun1(LPVOID lpParameter);DWORD WINAPI fun2(LPVOID lpParameter);int tickets=20;CRITICAL_SECTION g_cs;

2015-06-26 20:41:53 456

原创 利用事件对象 实现线程同步

#include "stdafx.h"#include #include #include using namespace std;DWORD WINAPI fun1(LPVOID lpParameter);DWORD WINAPI fun2(LPVOID lpParameter);int tickets=20;HANDLE g_hEvent;int

2015-06-26 18:09:10 588 1

原创 聊天室 利用多线程

//=================================================stdafx.hstruct RECVPARAM{SOCKET sock; //已创建的套接字HWND hwnd; //对话框句柄};//=================================================0625CDlg.h 

2015-06-25 15:41:55 452

原创 保证程序只有一个运行实例

#include "stdafx.h"#include #include #include using namespace std;HANDLE hMutex;int _tmain(int argc, _TCHAR* argv[]){hMutex=::CreateMutexA(NULL,TRUE,"tickets");if(hMutex){if(

2015-06-25 10:10:44 352

原创 互斥对象 可以避免脏读

#include "stdafx.h"#include #include #include using namespace std;DWORD WINAPI m_fun1(LPVOID lpParameter);DWORD WINAPI m_fun2(LPVOID lpParameter);int tickets=30;HANDLE hMutex;

2015-06-25 09:53:46 358

原创 程序 进程 线程 初次多线程

一个程序可以对应多个进程 如 记事本可以打开好多个一个进程也可以同时访问多个程序每个进程有独立的虚拟地址空间,不同进程内,即使使用相同内存地址实际也是不同的物理内存进程由两部分组成1 内核对象2 地址空间  包含所有的可执行模块 或 DLL模块的代码和数据 还包含 栈(stack)和 堆(heap)真正执行代码的是线程,进程只是线程的容器,一个进程可

2015-06-24 20:31:54 327

原创 一个solution多个project 基于win32console的socket

在现有solution中再添加一个projectfile->add->new Project对工程可以右键设置为当前运行工程会在debug文件夹中生成两个exe在本soluton中,先运行0603B.exe  后运行0603C.exe// 首先是服务器端===================================================

2015-06-24 18:23:48 423

转载 串行化(序列化) 使用CArchive进行读写

将类的对象存入硬盘 就称之为串行化void CMainFrame::OnSave1() //存{CFile file("abc.txt",CFile::modeCreate|CFile::modeWrite);::CArchive ar(&file,::CArchive::store);int i=4;char ch='a';float f=1.3f;//数值尾

2015-06-23 18:47:12 501

原创 文件不关闭防断电追加写入 写读注册表

void CMy0622BDlg::write_to_file(void){CString str;this->GetDlgItem(IDC_EDIT1)->GetWindowTextA(str);str=str+"\n";FILE* pfile=::fopen("./abc.txt","a");::fwrite(str,1,::strlen(str),pfile);

2015-06-22 20:51:30 406

原创 自定义消息 + 在状态栏走进度条

1 在mainFrame CPP 中#define WM_DATA   WM_USER+100  //定义一个自定义消息2在h 中afx_msg LRESULT OnData(WPARAM wParam,LPARAM lParam); //添加声明DECLARE_MESSAGE_MAP()3 在APP中BEGIN_MESSAGE_MAP(CMainFrame, CFrame

2015-06-20 20:00:19 401

转载 修改应用程序外观 注册和使用自定义窗口结构体

修改大小,标题,能否最大化======================================BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){if( !CFrameWndEx::PreCreateWindow(cs) )return FALSE;// TODO: Modify the Window class or

2015-06-19 19:19:40 361

原创 用三个函数捕捉消息 先后顺序 判断消息的来源 子窗口的判断

APP 的PreTranslateMessage(MSG* pMsg)APP的ProcessMessageFilter(int code, LPMSG lpMsg)Dlg的PreTranslateMessage(MSG* pMsg)消息被捕捉的顺序是 1 APP 的 PreTranslateMessage2 Dlg 的 PreTranslateMessage3 APP的

2015-06-19 17:21:38 553

原创 修改窗口过程函数:按下回车后 焦点转移到下一个编辑框

为了使EDIT控件能收到回车键 属性mutiline要改为TRUE方法1 ======================================================================WNDPROC prevProc;LRESULT CALLBACK NewEditProc(HWND hwnd,UINT uMsg,WPARAM wP

2015-06-18 19:37:54 1765

转载 用发消息方式实现加法运算

void CMy0618ADlg::OnBnClickedButton1(){// TODO: Add your control notification handler code hereint x,y,z;char char1[10],char2[10],char3[10];//this->SendMessage();::SendMessageA(this->GetDl

2015-06-18 14:11:57 387

原创 卡拉OK式渐变色滚屏

this->m_w=0;this->SetTimer(1,100,NULL);====================================================OnTimerCString str;str="今天天气不错,挺风和日丽的";m_w+=5;CClientDC dc(this);dc.SetTextColor(RGB(0,

2015-06-18 06:18:24 418

原创 绘图,路径

void CMy0617BView::OnDraw(CDC* pDC){CMy0617BDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;CMy0617BDoc* p2=this->GetDocument();ASSERT_VALID(p2);//valid  有效的CString s

2015-06-17 19:59:40 374

转载 文档窗口标题修改

整个标题的修改:  先在框架类mainframe的PreCreateWindow函数前面加入一条语句:cs.style   &=   ~FWS_ADDTOTITLE;则函数变为:  BOOL   CMainFrame::PreCreateWindow(CREATESTRUCT& cs)     {            cs.style   &= ~FWS_ADDTOTITLE

2015-06-17 19:09:50 461

原创 绘图 在客户区 在窗口全区 在屏幕全区 透明画刷

void CMy0617AView::OnLButtonUp(UINT nFlags, CPoint point){//CWindowDC dc(this);//客户区//CWindowDC dc(this->GetParent());//窗口区CWindowDC dc(this->GetDesktopWindow());//全屏dc.MoveTo(this->

2015-06-17 18:16:39 586

原创 窗口与窗口类对象不是一回事,MFC 消息映射机制

窗口与窗口类对象不是一回事窗口销毁 意味着窗口类对象的 hwnd=NULL,窗口类对象并不一定deleteMFC 消息映射机制每一个能收消息的类 都有一个消息映射表  使消息与消息函数静态对照即 消息与对应的消息处理函数指针是成对出现的后台还存在一个窗口句柄与C++对象指针的对照表当收到某一消息时消息的第一个参数就指明了与哪个窗口句柄相关  于是找到了c

2015-06-16 20:35:14 411

原创 显示调用基类构造函数,迟绑定,VC++编译链接过程

在派生类构造函数中显示调用基类构造函数public:fish():animal(400,300){}虚函数的多态性是用 "迟绑定"技术 实现的  late bindingVC++编译链接过程每个cpp分别单独预处理 编译 生成各自的obj文件这些obj文件再加上 标准库lib一起链接  生成exe

2015-06-15 21:01:47 425 1

原创 由空白win32工程起,手动设计一个窗口程序

#include #include LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCm

2015-06-15 19:54:20 387

原创 win32 消息

API 应用程序接口 SDK 软件开发包  包含API消息队列  对于windows程序 运行时 任何操作首先是由系统收到,系统将操作转化为消息发给程序分为进队消息和不进队消息进队消息不进队消息 WM_PAINT添加属性 style=stle | A去除属性 style=style & ~B两种函数调用约定_cdecl  默认方式 参数个数可变

2015-06-15 17:50:14 283

原创 MFC 不同工程的对话框如何复制过来?

把你原来的工程插入到当前工程中(文件-》添加项目-》现有项目),然后拷贝原来的对话框,再到当前工程对话框组,粘贴!然后把对应的h和cpp文件复制过去即可。在复制完成后,从workspace中删除原来的工程即可。

2015-06-11 17:33:52 2056

原创 MFC 多媒体计时器函数timeSetEvent的使用方法

MFC 工程不用自带WM_TIME计时器,用多媒体计时器函数timeSetEvent的方法

2015-06-11 15:34:03 5897

原创 用对话框指针来控制创建关闭和清除子对话框

MFC 对话框 工程.主对话框是A类的实例  A含有成员变量 指针*B  B也是一个对话框类下面我们就利用这个指针 实现对子对话框的开启 关闭 和销毁首先是结构上的准备工作,使两个类能够互相调用添加Dialog_EX 类BA include "B.h"public: *B m_son;init(){this->m_son-=NULL;

2015-06-09 20:32:17 1447

原创 初次接触VC++加载自定义LIB 即静态链接

分为两部分第一部分  LIB工程 用来生成LIB文件#ifndef _myfun#define _myfunint myfun(int x,int y){return x+y;}#endif将lib文件放在Visual Studio\VC98\Lib目录里将myfun.h移到Visual Studio\VC98\Include目录里

2015-06-06 18:06:31 807

原创 初次接触vc 运行时动态加载DLL

[A]===========================下载Depends软件  可以查看DLL文件[B]===========================先做生产DLL文件的工程 此工程编译后 将在Debug文件件夹下生成DLL文件此DLL文件用来拷贝到别的工程来#include "stdafx.h"extern "C" int _declspec(dll

2015-06-05 19:32:59 462

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除