04 2010 档案
摘要:CDC::SetMapMode virtual int SetMapMode(int nMapMode);MM_ANISOTROPIC把逻辑单位转换为任意缩放轴上的任意单位。把映射模式设置为MM_ANISOTROPIC并不改变当前窗口或视图端口的设置。要改变单位、方向和缩放,可调用SetViewportExt和SetWindowtExt成员函数。 MM_ISOTROPIC逻辑单位转换为带有对等缩放...
阅读全文
摘要:一、元文件。 由一系列与图形函数调用等价的二进制记录组成,这些记录一般用于绘制直线、曲线、区域、文本等。二、“画图程序”创建位图,“绘图程序”创建元文件。 元文件比位图占空间少,而且比位图更加设备无关。三、老式元文件格式。扩展名为.WMF HDC hdcMeta = CreateMetaFile( LPCTSTR lpszFile // fi...
阅读全文
摘要:一、轨迹生成: BeginPath (hdc) ;//开始轨迹 TextOut(...); MoveToEx (hdc, 40, 25, NULL) ; LineTo (hdc, 50, 75) ; LineTo (hdc, 60, 25) ; CloseFigure();//用直线封闭轨迹 EndPath (hdc) ;//结束轨迹 StrokePath (hdc) ; //画出轨迹二、轨...
阅读全文
摘要:Windows网络编程第二版 中文版07章Winsock基础08章Winsock IO方法
阅读全文
摘要:一、字体类型: 1,GDI字体。储存在硬盘文件里。 1.1 点阵字体。又称位图字体。以位图象素图案的形式存储。不可随意缩放,优点是显示快,可读性好。每个点阵字体不超过6种大小。 例:System,FixedSys,Terminal,Courier,MS Serif,MS Sans Serif,Small Fonts 1.2 笔画字体。优点是随意缩放,缺点显示慢,小字体可读性差。...
阅读全文
摘要:一、DIB内的位图基本上没有经过任何压缩。 DIB的扩展名是.BMP或者.DIB 与大多数位图格式不同的是,DIB从底部开始,水平向上扫描图片。 JPEG,GIF 是压缩后的DIB。二、位图操作: 1,打开位图 hFile = CreateFile (pstrFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, F...
阅读全文
摘要:假设排列着100个乒乓球,由两个人轮流拿球装入口袋,能拿到第100个乒乓球的人为胜利者。条件是:每次拿球者至少要拿1个,但最多不能超过5个,问:如果你是最先拿球的人,你该拿几个?以后怎么拿就能保证你能得到第100个乒乓球?
阅读全文
摘要:10个箱子,每个箱子10个苹果,其中一个箱子的苹果是9两/个,其他的都是1斤/个。 要求利用一个秤,只秤一次,找出那个装9两/个的箱子。
阅读全文
摘要:这种题很多。两个容器,容积是A和B,怎样弄C体积的水。解法:用A盛,倒B里,B满了,就倒掉。 最终 A盛M次,B盛N次。结果 C = AM -BN。或者是反过来 C = BN - AM也就是求正整数M、N,使得 |AM - BN| = C当然有的题目加上最多用几次就不在此列了。
阅读全文
摘要:题目:有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒。回答:用二进制算法。把1000瓶水编号,每个编号写成二进制的形式,pow(2,10) = 1024 > 1000,这样每个编号就有10位。把10只小白鼠编号,从1到10,让第N号小白鼠去喝瓶子编号第N为为1的水,新定义一个十位二进制数,最终死掉的小白鼠的编号的...
阅读全文
摘要:1. 基本概念 先来用通俗的语句讲解位图和调色板的概念。 我们知道,自然界中的所有颜色都可以由红、绿、蓝(R,G,B)三基色组合而成。针对含有红、绿、蓝色成分的多少,可以对其分别分成0~255个等级,而红、绿、蓝的不同组合共有256×256×256种,因此约能表示1600万种颜色。对于人眼而言,这已经是"真彩色"了。 对每个像素进行了(R,G,B)量化的图像就是位图,...
阅读全文
摘要:一、位图 -- 光栅图像 -- 缩放会失真 元文件 -- 矢量图像 -- 缩放不失真二、一些函数: 1、BitBlt (bit blit) 直接拷贝位图象素。 2、BOOL CDC::StretchBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int ...
阅读全文
摘要:三、GDI+ GDI+是GDI的下一个版本,它进行了很好的改进,并且易用性更好。GDI的一个好处就是你不必知道任何关于数据怎样在设备上渲染的细节,GDI+更好的实现了这个优点,也就是说,GDI是一个中低层API,你还可能要知道设备,而GDI+是一个高层的API,你不必知道设备。例如你如果要设置某个控件的前景和背景色,只需设置BackColor和ForeColor属性。四、编程模式的变化 &ldq...
阅读全文
摘要:int DrawMultLineText(HDC hDC , int nXStart , int nYStart , int nWidth , int nRowHeight , LPCTSTR pBuff) { TEXTMETRIC tm; LPCTSTR pChar; if(!GetTextMetrics(hDC , &tm)) return 0; CPoint posStart , p...
阅读全文
摘要:一、一些函数: 枚举打印机 EnumPrinters 获取设备信息 GetDeviceCaps 打印窗口 PrintDlg 设置中断 SetAbortProc 二、打印方法,跟Java里的一样的原理。 计算打印页数iPageCount StartDoc for(int iPage = 0 ; iPage < iPageCount; iPage++) { StartPa...
阅读全文
摘要:一、剪贴板原理: * 剪贴板里面同一种类型的数据只能保留一个数据项 * 剪贴板里存放的是一个指向复制&剪切内存的句柄。 复制&剪切: 获取指向存放复制&剪切数据的内存的句柄。 打开剪贴板 清空剪贴板 设置内存句柄 关闭剪贴板 粘贴: 打开剪贴板 获取指向存放复制&剪切数据的内存的句柄 锁定句柄,获取内存指针 ...
阅读全文
摘要:全局内存:hGlobal = GlobalAlloc 分配hGlobal = GlobalReAlloc 重分配GlobalSize(hGlobal); 获取大小GlobalFree(hGlobal); 释放内存int *p = (int*)GlobalLock(hGlobal); 访问内存 访问时锁定内存GlobalUnlock(hGlobal); 解除锁定,锁定几次,就需要解锁几次。Globa...
阅读全文
摘要:Windows API 1.控件与消息函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeIconicWindows 排列一个父窗口的最小化子窗口 AttachThreadInput 连接线程输入函数 BeginDeferWindowPos 启动构建一系列新窗口位置的过程 BringWin...
阅读全文
摘要:什么是API 首先,有必要向大家讲一讲,什么是API。所谓API本来是为C和C++程序员写的。API说来说去,就是一种函数,他们包含在一个附加名为DLL的动态连接库文件中。用标准的定义来讲,API就是Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和结构,它使编程人员可以用不同类型的编程语言编制出的运行在Windows95和Windows NT操作系统上的应用程序。可以说,如果你...
阅读全文
摘要:1、将Program files下的SQL安装目录删除(此处如果有重要的数据,请先备份) C:\Program Files\Microsoft SQL Server\80\Tools。 C:\Program Files\Microsoft SQL Server\MSSQL。 2、注册表中的相关信息删除: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServ...
阅读全文
摘要:一、对话框过程和窗口过程直接的区别。 1,返回值: 窗口 LRESULT 对话框 BOOL 2,不处理的消息: 窗口 交给DefWindowProc 对话框 处理返回TRUE 不处理返回FALSE. 3,特定消息: 对话框过程不处理WM_PAINT,WM_DESTROY,不接收WM_CREATE,而是在WM_INITDIALOG里面初始化。 WM_IN...
阅读全文
摘要:一、windows识别初始字符#作为ASCII形式数据的开头二、自定义资源的使用:感觉没啥用,不写了。 //LoadResource FindResource LockResource 注意事项:HRSRC FindResource( HMODULE hModule, // module handle LPCTSTR lpName, // resource name LPCTSTR l...
阅读全文
摘要:一、LONG GetWindowLong( HWND hWnd, // handle to window int nIndex // offset of value to retrieve); nIndex --- 注意查MSDN。二、系统颜色。用系统颜色作为控件颜色,可以使软件界面跟系统更加和谐。三、自绘子窗口。void CWindowsDisignDlg::OnDrawItem(int...
阅读全文
摘要:一、计时器工作原理: windows计时器是基于PC的硬件和ROM BIOS构造的计时器逻辑的一种相对简单的扩展。 对于每个拥有计时器的程序,windows保存一个每次硬件计时器滴答减少的次数,当减少为0时,windows就在应用程序消息队列中放置一个WM_TIMER消息,并将计数重新置为最初的值。 WM_TIMER的位置是在应用程序的消息队列里,所以他不是异步的,而是跟其他消息...
阅读全文
摘要:一、检测鼠标:判断是否有鼠标: GetSystemMetrics(SM_MOUSEPRESENT);//WINDOWS98后有效判断鼠标几个键:GetSystemMetrics(SM_CMOUSEBUTTONS);//WINDOWS98后有效二、鼠标消息,总共21个:客户区消息#define WM_MOUSEMOVE 0x0200#define WM_LBUTTONDOWN 0x0201#defi...
阅读全文
摘要:一、键盘事件处理过程。1,击键。2,windows和键盘驱动程序将硬件扫描吗转化为格式消息,放在windows维护的"系统消息队列"中。3,windows从系统消息队列中,取一个消息,发送给当前获得焦点的窗口的应用程序消息队列。4,应用程序处理该该消息完毕后,windows才能接下来从"系统消息队列"中去获得下一个消息。 因为前面的消息处理可能会影响后一个消息的处理情况,比如tab按键可能会影响...
阅读全文
摘要:裁解区域不受SetViewportOrg影响, CClientDC dc(this); dc.SetViewportOrg(150,200); CRgn rgn; rgn.CreateRectRgn(0,0,150,230); dc.SelectClipRgn(&rgn);和 CClientDC dc(this); CRgn rgn; rgn.CreateRectRgn(0,0,150,...
阅读全文
摘要:通常在调用GetDC和BeginPaint时,系统用设备描述表的默认属性创建一个DC,使用设置设备描述表后,不会保存属性,下次还得重新设置。如果要保存,需要设置窗口属性为:CS_OWNDC,这样只需要设置一次设备描述表属性就可以了。当然,这个只针对GetDC和BeginPaint返回的DC。设备描述表的属性(具体属性值,查看MFC文档):virtual int SetMapMode(int nMa...
阅读全文
摘要:1,选择文件夹void CDialog::OnButtonBrowser(){ // TODO: Add your control notification handler code here UpdateData(TRUE); char szDir[MAX_PATH]; BROWSEINFO bi; ITEMIDLIST *pidl; bi.hwndOwner = this->m_hWnd...
阅读全文
摘要:CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL),获取整个屏幕的设备描述表。等同与:GetDC(NULL);CreateIC(TEXT("DISPLAY"),NULL,NULL,NULL),只用于获取设备描述表的属性信息,不能用于绘图。CreateCompatibleDC,用于操作位图CreateMetaFile,源文件(二进制编码形式的GDI调用集合)。这个的关闭...
阅读全文
摘要:const char* c;c = "abcdef";CString s;int len = strlen(c);TCHAR* c1 = (TCHAR*)malloc(sizeof(TCHAR)*len);MultiByteToWideChar( CP_ACP , 0 , c , len+1 , c1 , len+1);s.Format(L"%s",c1);--------------
阅读全文
摘要:WM_PAINT 窗口界面无效后,触发WM_PAINT消息,这是一个进队消息,在消息循环中调用。UpdateWindow 则是不进队的,直接调用窗口过程。而且,由于WM_PAINT的优先级比较低,所以有时候在用InvalidateRect使窗口无效的时候,如果窗口正在处理其他消息,就不会立刻刷新窗口,出现空白。这时候,如果需要立刻刷新窗口,就要执行UpdateWindow。或者SendMessag...
阅读全文
摘要:TCHAR szBuffer[40];int iLength = wsprintf(szBuffer, TEXT("%i and %i is %i"),iA,iB,iA+iB);TextOut(hdc,100,100,szBuffer,iLenght);------------
阅读全文
摘要:好像在CSDN上看过很多次讨论的都没结果,昨天看书偶有感悟。如果那个......,就当......吧。原理:字符(串)长度像素/字符串长度厘米 = 显示器长宽像素/显示器长宽厘米。但在不同分辨率下,计算结果会有些偏差,应该是获取的字符串长度厘米有偏差,因为这个只能精确到0.01毫米,在标准分辨率下获取的比较准确。\(^o^)/~void CWindowsDisignDlg::OnButton1()...
阅读全文
摘要:旋转公式:XFORM xForm;double pi = 3.1415926;xForm.eM11 = (FLOAT)cos(pi/6);xForm.eM12 = (FLOAT)sin(pi/6);xForm.eM21 = (FLOAT)-sin(pi/6);xForm.eM22 = (FLOAT)cos(pi/6);xForm.eDx = (FLOAT)0.0;xForm.eDY = (FLOA...
阅读全文
摘要:SM_CLEANBOOT 返回系统启动方式: 0 正常启动 1 安全模式启动 2 网络安全模式启动 SM_CMOUSEBUTTONS 返回值为系统支持的鼠标键数,返回0,则系统中没有安装鼠标。 SM_CXBORDER, SM_CYBORDER 返回以相素值为单位的Windows窗口边框的宽度和高度,如果Windows的为3D形态,则 等同于SM_CXEDGE参数 SM_CXCURS...
阅读全文
摘要:BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) {// TODO: Add your specialized code here and/or call the base classif (pMsg->message == WM_NCLBUTTONDOWN){pMsg->message = WM_LBUTTONDOWN;}return CDial...
阅读全文
摘要:本来这个本身没太大的问题,在初始化窗口 如 oninitdialog,oncreate和关闭窗口 如onclose的时候,调用AnimateWindow即可实现窗口的动态效果打开和关闭。但是:(转下面一段话)编译时出现的问题 在实现动画窗口的程序时,笔者发现如果直接在VC中使用AnimateWindow函数,在编译时会报告出错。以上述程序为例,在编译时系统会报告: 'AnimateWindow' ...
阅读全文
摘要:前缀 隐含的数据类型 说明 b BOOL 实际为整型 by BYTE 无符号字符 c char 字符 dw DWORD 无符号长型 fn function 函数 h HANDLE 无符号整型 i integer 整数 l ...
阅读全文
浙公网安备 33010602011771号