04 2010 档案

摘要:CDC::SetMapMode virtual int SetMapMode(int nMapMode);MM_ANISOTROPIC把逻辑单位转换为任意缩放轴上的任意单位。把映射模式设置为MM_ANISOTROPIC并不改变当前窗口或视图端口的设置。要改变单位、方向和缩放,可调用SetViewportExt和SetWindowtExt成员函数。 MM_ISOTROPIC逻辑单位转换为带有对等缩放... 阅读全文
posted @ 2010-04-30 11:25 傲衣华少 阅读(407) 评论(0) 推荐(0)
摘要:一、元文件。  由一系列与图形函数调用等价的二进制记录组成,这些记录一般用于绘制直线、曲线、区域、文本等。二、“画图程序”创建位图,“绘图程序”创建元文件。  元文件比位图占空间少,而且比位图更加设备无关。三、老式元文件格式。扩展名为.WMF  HDC hdcMeta = CreateMetaFile( LPCTSTR lpszFile // fi... 阅读全文
posted @ 2010-04-30 11:21 傲衣华少 阅读(561) 评论(0) 推荐(0)
摘要:一、轨迹生成: BeginPath (hdc) ;//开始轨迹  TextOut(...); MoveToEx (hdc, 40, 25, NULL) ; LineTo (hdc, 50, 75) ; LineTo (hdc, 60, 25) ;  CloseFigure();//用直线封闭轨迹 EndPath (hdc) ;//结束轨迹 StrokePath (hdc) ; //画出轨迹二、轨... 阅读全文
posted @ 2010-04-30 10:42 傲衣华少 阅读(475) 评论(0) 推荐(0)
摘要:Windows网络编程第二版 中文版07章Winsock基础08章Winsock IO方法 阅读全文
posted @ 2010-04-29 14:54 傲衣华少 阅读(169) 评论(0) 推荐(0)
摘要:一、字体类型:  1,GDI字体。储存在硬盘文件里。    1.1 点阵字体。又称位图字体。以位图象素图案的形式存储。不可随意缩放,优点是显示快,可读性好。每个点阵字体不超过6种大小。    例:System,FixedSys,Terminal,Courier,MS Serif,MS Sans Serif,Small Fonts    1.2 笔画字体。优点是随意缩放,缺点显示慢,小字体可读性差。... 阅读全文
posted @ 2010-04-29 12:16 傲衣华少 阅读(403) 评论(0) 推荐(0)
摘要:一、DIB内的位图基本上没有经过任何压缩。  DIB的扩展名是.BMP或者.DIB  与大多数位图格式不同的是,DIB从底部开始,水平向上扫描图片。  JPEG,GIF 是压缩后的DIB。二、位图操作:  1,打开位图    hFile = CreateFile (pstrFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, F... 阅读全文
posted @ 2010-04-28 14:20 傲衣华少 阅读(538) 评论(0) 推荐(0)
摘要:假设排列着100个乒乓球,由两个人轮流拿球装入口袋,能拿到第100个乒乓球的人为胜利者。条件是:每次拿球者至少要拿1个,但最多不能超过5个,问:如果你是最先拿球的人,你该拿几个?以后怎么拿就能保证你能得到第100个乒乓球? 阅读全文
posted @ 2010-04-28 10:19 傲衣华少 阅读(299) 评论(0) 推荐(0)
摘要:10个箱子,每个箱子10个苹果,其中一个箱子的苹果是9两/个,其他的都是1斤/个。 要求利用一个秤,只秤一次,找出那个装9两/个的箱子。 阅读全文
posted @ 2010-04-28 10:18 傲衣华少 阅读(187) 评论(0) 推荐(0)
摘要:这种题很多。两个容器,容积是A和B,怎样弄C体积的水。解法:用A盛,倒B里,B满了,就倒掉。 最终 A盛M次,B盛N次。结果 C = AM -BN。或者是反过来 C = BN - AM也就是求正整数M、N,使得 |AM - BN| = C当然有的题目加上最多用几次就不在此列了。 阅读全文
posted @ 2010-04-28 10:02 傲衣华少 阅读(257) 评论(0) 推荐(0)
摘要:题目:有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒。回答:用二进制算法。把1000瓶水编号,每个编号写成二进制的形式,pow(2,10) = 1024 > 1000,这样每个编号就有10位。把10只小白鼠编号,从1到10,让第N号小白鼠去喝瓶子编号第N为为1的水,新定义一个十位二进制数,最终死掉的小白鼠的编号的... 阅读全文
posted @ 2010-04-28 09:46 傲衣华少 阅读(580) 评论(0) 推荐(1)
摘要:1. 基本概念  先来用通俗的语句讲解位图和调色板的概念。  我们知道,自然界中的所有颜色都可以由红、绿、蓝(R,G,B)三基色组合而成。针对含有红、绿、蓝色成分的多少,可以对其分别分成0~255个等级,而红、绿、蓝的不同组合共有256×256×256种,因此约能表示1600万种颜色。对于人眼而言,这已经是"真彩色"了。  对每个像素进行了(R,G,B)量化的图像就是位图,... 阅读全文
posted @ 2010-04-27 10:32 傲衣华少 阅读(1131) 评论(0) 推荐(0)
摘要:一、位图 -- 光栅图像 -- 缩放会失真  元文件 -- 矢量图像 -- 缩放不失真二、一些函数:  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 ... 阅读全文
posted @ 2010-04-26 16:37 傲衣华少 阅读(970) 评论(0) 推荐(0)
摘要:三、GDI+  GDI+是GDI的下一个版本,它进行了很好的改进,并且易用性更好。GDI的一个好处就是你不必知道任何关于数据怎样在设备上渲染的细节,GDI+更好的实现了这个优点,也就是说,GDI是一个中低层API,你还可能要知道设备,而GDI+是一个高层的API,你不必知道设备。例如你如果要设置某个控件的前景和背景色,只需设置BackColor和ForeColor属性。四、编程模式的变化 &ldq... 阅读全文
posted @ 2010-04-26 15:23 傲衣华少 阅读(505) 评论(0) 推荐(0)
摘要: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... 阅读全文
posted @ 2010-04-26 09:50 傲衣华少 阅读(3072) 评论(0) 推荐(0)
摘要:一、一些函数:  枚举打印机 EnumPrinters  获取设备信息 GetDeviceCaps  打印窗口 PrintDlg  设置中断 SetAbortProc  二、打印方法,跟Java里的一样的原理。  计算打印页数iPageCount  StartDoc  for(int iPage = 0 ; iPage < iPageCount; iPage++)  {    StartPa... 阅读全文
posted @ 2010-04-23 17:27 傲衣华少 阅读(273) 评论(0) 推荐(0)
摘要:一、剪贴板原理:  * 剪贴板里面同一种类型的数据只能保留一个数据项  * 剪贴板里存放的是一个指向复制&剪切内存的句柄。  复制&剪切:    获取指向存放复制&剪切数据的内存的句柄。    打开剪贴板    清空剪贴板    设置内存句柄    关闭剪贴板  粘贴:    打开剪贴板    获取指向存放复制&剪切数据的内存的句柄    锁定句柄,获取内存指针  ... 阅读全文
posted @ 2010-04-23 11:08 傲衣华少 阅读(370) 评论(0) 推荐(0)
摘要:全局内存:hGlobal = GlobalAlloc 分配hGlobal = GlobalReAlloc 重分配GlobalSize(hGlobal); 获取大小GlobalFree(hGlobal); 释放内存int *p = (int*)GlobalLock(hGlobal); 访问内存 访问时锁定内存GlobalUnlock(hGlobal); 解除锁定,锁定几次,就需要解锁几次。Globa... 阅读全文
posted @ 2010-04-23 10:30 傲衣华少 阅读(252) 评论(0) 推荐(0)
摘要:Windows API 1.控件与消息函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeIconicWindows 排列一个父窗口的最小化子窗口 AttachThreadInput 连接线程输入函数 BeginDeferWindowPos 启动构建一系列新窗口位置的过程 BringWin... 阅读全文
posted @ 2010-04-22 15:49 傲衣华少 阅读(336) 评论(0) 推荐(0)
摘要:什么是API 首先,有必要向大家讲一讲,什么是API。所谓API本来是为C和C++程序员写的。API说来说去,就是一种函数,他们包含在一个附加名为DLL的动态连接库文件中。用标准的定义来讲,API就是Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和结构,它使编程人员可以用不同类型的编程语言编制出的运行在Windows95和Windows NT操作系统上的应用程序。可以说,如果你... 阅读全文
posted @ 2010-04-22 15:46 傲衣华少 阅读(1293) 评论(0) 推荐(0)
摘要: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... 阅读全文
posted @ 2010-04-21 22:03 傲衣华少 阅读(232) 评论(0) 推荐(0)
摘要:一、对话框过程和窗口过程直接的区别。  1,返回值:    窗口 LRESULT     对话框 BOOL  2,不处理的消息:    窗口 交给DefWindowProc     对话框 处理返回TRUE 不处理返回FALSE.  3,特定消息:    对话框过程不处理WM_PAINT,WM_DESTROY,不接收WM_CREATE,而是在WM_INITDIALOG里面初始化。    WM_IN... 阅读全文
posted @ 2010-04-21 17:31 傲衣华少 阅读(307) 评论(0) 推荐(0)
摘要:一、windows识别初始字符#作为ASCII形式数据的开头二、自定义资源的使用:感觉没啥用,不写了。  //LoadResource FindResource LockResource  注意事项:HRSRC FindResource( HMODULE hModule, // module handle LPCTSTR lpName, // resource name LPCTSTR l... 阅读全文
posted @ 2010-04-20 17:31 傲衣华少 阅读(251) 评论(0) 推荐(0)
摘要:一、LONG GetWindowLong( HWND hWnd, // handle to window int nIndex // offset of value to retrieve); nIndex --- 注意查MSDN。二、系统颜色。用系统颜色作为控件颜色,可以使软件界面跟系统更加和谐。三、自绘子窗口。void CWindowsDisignDlg::OnDrawItem(int... 阅读全文
posted @ 2010-04-20 12:30 傲衣华少 阅读(237) 评论(0) 推荐(0)
摘要:一、计时器工作原理:    windows计时器是基于PC的硬件和ROM BIOS构造的计时器逻辑的一种相对简单的扩展。    对于每个拥有计时器的程序,windows保存一个每次硬件计时器滴答减少的次数,当减少为0时,windows就在应用程序消息队列中放置一个WM_TIMER消息,并将计数重新置为最初的值。    WM_TIMER的位置是在应用程序的消息队列里,所以他不是异步的,而是跟其他消息... 阅读全文
posted @ 2010-04-19 11:15 傲衣华少 阅读(307) 评论(0) 推荐(0)
摘要:一、检测鼠标:判断是否有鼠标: GetSystemMetrics(SM_MOUSEPRESENT);//WINDOWS98后有效判断鼠标几个键:GetSystemMetrics(SM_CMOUSEBUTTONS);//WINDOWS98后有效二、鼠标消息,总共21个:客户区消息#define WM_MOUSEMOVE 0x0200#define WM_LBUTTONDOWN 0x0201#defi... 阅读全文
posted @ 2010-04-16 11:36 傲衣华少 阅读(260) 评论(0) 推荐(0)
摘要:一、键盘事件处理过程。1,击键。2,windows和键盘驱动程序将硬件扫描吗转化为格式消息,放在windows维护的"系统消息队列"中。3,windows从系统消息队列中,取一个消息,发送给当前获得焦点的窗口的应用程序消息队列。4,应用程序处理该该消息完毕后,windows才能接下来从"系统消息队列"中去获得下一个消息。  因为前面的消息处理可能会影响后一个消息的处理情况,比如tab按键可能会影响... 阅读全文
posted @ 2010-04-15 11:46 傲衣华少 阅读(281) 评论(0) 推荐(0)
摘要:裁解区域不受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,... 阅读全文
posted @ 2010-04-15 11:16 傲衣华少 阅读(218) 评论(0) 推荐(0)
摘要:通常在调用GetDC和BeginPaint时,系统用设备描述表的默认属性创建一个DC,使用设置设备描述表后,不会保存属性,下次还得重新设置。如果要保存,需要设置窗口属性为:CS_OWNDC,这样只需要设置一次设备描述表属性就可以了。当然,这个只针对GetDC和BeginPaint返回的DC。设备描述表的属性(具体属性值,查看MFC文档):virtual int SetMapMode(int nMa... 阅读全文
posted @ 2010-04-14 11:08 傲衣华少 阅读(338) 评论(0) 推荐(0)
摘要: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... 阅读全文
posted @ 2010-04-13 16:47 傲衣华少 阅读(404) 评论(0) 推荐(0)
摘要:CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL),获取整个屏幕的设备描述表。等同与:GetDC(NULL);CreateIC(TEXT("DISPLAY"),NULL,NULL,NULL),只用于获取设备描述表的属性信息,不能用于绘图。CreateCompatibleDC,用于操作位图CreateMetaFile,源文件(二进制编码形式的GDI调用集合)。这个的关闭... 阅读全文
posted @ 2010-04-12 17:26 傲衣华少 阅读(732) 评论(0) 推荐(0)
摘要: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);-------------- 阅读全文
posted @ 2010-04-09 16:30 傲衣华少 阅读(3489) 评论(2) 推荐(1)
摘要:WM_PAINT 窗口界面无效后,触发WM_PAINT消息,这是一个进队消息,在消息循环中调用。UpdateWindow 则是不进队的,直接调用窗口过程。而且,由于WM_PAINT的优先级比较低,所以有时候在用InvalidateRect使窗口无效的时候,如果窗口正在处理其他消息,就不会立刻刷新窗口,出现空白。这时候,如果需要立刻刷新窗口,就要执行UpdateWindow。或者SendMessag... 阅读全文
posted @ 2010-04-09 16:06 傲衣华少 阅读(274) 评论(0) 推荐(0)
摘要:TCHAR szBuffer[40];int iLength = wsprintf(szBuffer, TEXT("%i and %i is %i"),iA,iB,iA+iB);TextOut(hdc,100,100,szBuffer,iLenght);------------ 阅读全文
posted @ 2010-04-09 11:17 傲衣华少 阅读(544) 评论(0) 推荐(0)
摘要:好像在CSDN上看过很多次讨论的都没结果,昨天看书偶有感悟。如果那个......,就当......吧。原理:字符(串)长度像素/字符串长度厘米 = 显示器长宽像素/显示器长宽厘米。但在不同分辨率下,计算结果会有些偏差,应该是获取的字符串长度厘米有偏差,因为这个只能精确到0.01毫米,在标准分辨率下获取的比较准确。\(^o^)/~void CWindowsDisignDlg::OnButton1()... 阅读全文
posted @ 2010-04-09 10:56 傲衣华少 阅读(2468) 评论(8) 推荐(0)
摘要:旋转公式: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... 阅读全文
posted @ 2010-04-08 22:15 傲衣华少 阅读(440) 评论(0) 推荐(0)
摘要:SM_CLEANBOOT 返回系统启动方式:  0 正常启动  1 安全模式启动  2 网络安全模式启动  SM_CMOUSEBUTTONS 返回值为系统支持的鼠标键数,返回0,则系统中没有安装鼠标。  SM_CXBORDER,  SM_CYBORDER 返回以相素值为单位的Windows窗口边框的宽度和高度,如果Windows的为3D形态,则  等同于SM_CXEDGE参数  SM_CXCURS... 阅读全文
posted @ 2010-04-08 17:02 傲衣华少 阅读(403) 评论(0) 推荐(0)
摘要: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... 阅读全文
posted @ 2010-04-07 21:37 傲衣华少 阅读(331) 评论(0) 推荐(0)
摘要:本来这个本身没太大的问题,在初始化窗口 如 oninitdialog,oncreate和关闭窗口 如onclose的时候,调用AnimateWindow即可实现窗口的动态效果打开和关闭。但是:(转下面一段话)编译时出现的问题 在实现动画窗口的程序时,笔者发现如果直接在VC中使用AnimateWindow函数,在编译时会报告出错。以上述程序为例,在编译时系统会报告: 'AnimateWindow' ... 阅读全文
posted @ 2010-04-07 21:27 傲衣华少 阅读(713) 评论(0) 推荐(0)
摘要:前缀    隐含的数据类型   说明   b     BOOL       实际为整型   by     BYTE       无符号字符   c     char         字符   dw     DWORD     无符号长型   fn     function       函数   h     HANDLE     无符号整型   i     integer       整数   l ... 阅读全文
posted @ 2010-04-07 16:24 傲衣华少 阅读(206) 评论(0) 推荐(0)