随笔分类 - C++

c++ 基础,语法,应用
摘要:如何输出n个元素的全排列呢,比如abc,一个共有abc,acb,bac,bca,cab,cba等六种排列方式,一般来说,一个具有n个元素的串有n!中排列方式。我们可以把n个元素的排列的生成作为一个取舍问题,例如元素串abc,对于以a开头的排列方式,可以用一下方式进行选取,(1)选择b,构成ab,继续选择c,构成abc,新串产生结束。但是在第一步时可以不选取b,然后继续往下搜查,这时只有c,选取c,... 阅读全文

posted @ 2009-04-10 16:55 少林 阅读(1540) 评论(1) 推荐(0) 编辑 |

摘要:[代码] 阅读全文

posted @ 2009-02-25 21:31 少林 阅读(240) 评论(0) 推荐(0) 编辑 |

摘要:何时使用逻辑坐标,何时使用设备坐标呢?vc技术内幕给出了一些重要规则如下:1 假定CDC成员函数具有逻辑坐标参数。2 假定CWnd成员函数具有设备坐标参数。3 在设备坐标中进行所有的点击测试操作。在设备坐标中定义区域,像CRect::PtInRect这样的函数,只有在使用设备坐标时,才能保证结果的正确性。4 在逻辑或者物理坐标中存储长期使用的值,如果在设备坐标中存储一个点的坐标,只有用胡在一个窗口... 阅读全文

posted @ 2009-02-18 20:40 少林 阅读(435) 评论(0) 推荐(0) 编辑 |

摘要:6.一次只运行一个程序实例下列两种方式都可以实现,建议采用第二种方式:1、 if( FindWindow(NULL,"程序标题")) exit(0);2、BOOL CDemoTBarEApp::InstanceIsRun(){HANDLE m_hMutex;m_hMutex = ::CreateMutex(NULL, TRUE, _T("YourApplication"));ASSERT(m_h... 阅读全文

posted @ 2008-12-04 11:21 少林 阅读(509) 评论(0) 推荐(0) 编辑 |

摘要:好久没有用c语言写windows程序了,今天有兴致,写一个权当练练手吧。如果是学vc的话,系统的api还是要理解透的。以后还得多看看"windows 程序设计"的书,提高自己的内功修炼。:) #include LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI Win... 阅读全文

posted @ 2008-11-07 11:12 少林 阅读(444) 评论(0) 推荐(0) 编辑 |

摘要:一、综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。 RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个 字节便是“RIFF”。 WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF WAVE Chunk, Format Chunk, Fact Chunk(可选),... 阅读全文

posted @ 2008-09-29 16:03 少林 阅读(1151) 评论(0) 推荐(0) 编辑 |

摘要:最近在北京青年报偶然看到了一个数独游戏的题,具体来说就是按规矩进行填书。自己想了想,觉得还是有点费脑子的。于是就编写了一个程序,可以搜索数独游戏的所有答案。算法很简单,就是使用了回溯+剪枝,效率可能不是很高。不过对于9*9规模不是很大的问题,也应该足够了,不知道大家有什么好的算法,千万别忘了留言告诉我啊,哈哈 数独游戏: 版权所有 数独的游戏规... 阅读全文

posted @ 2008-09-21 20:28 少林 阅读(2985) 评论(6) 推荐(0) 编辑 |

摘要:C++语言中的一些概念及他们之间的区别(需要深刻理解): (1) 局部变量 全局变量 静态变量 const常量 寄存器变量 宏定义的常量 static变量 (注:包括它们的内存分配,作用域,初始化等) 局部变量: 指在函数(过程)内部定义的变量 作用域为定义该变量的函数 内存分配: 在栈中按地址从高到低分配;. 全局变量: ... 阅读全文

posted @ 2008-09-06 12:57 少林 阅读(1014) 评论(0) 推荐(0) 编辑 |

摘要:HBRUSH CAutoExeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if(nCtlColor == CTLCOLOR_DLG || nCtlColor == CTLCOLOR_STATIC) { ... 阅读全文

posted @ 2008-08-16 01:31 少林 阅读(2109) 评论(1) 推荐(0) 编辑 |

摘要:但这个内存设备内容最初只有一个单图素单色设备平面。我们必须建立一个足够大的位图以容纳我们所要显示的文字。通过GetTextExtentPoint32函数,可以取得文字的大小,而用CreateBitmap可以根据这些尺寸来建立位图: GetTextExtentPoint32 (hdcMem, TEXT ("Arial"), 5, &size) ; hBitmap = CreateBitmap (s... 阅读全文

posted @ 2008-06-02 20:36 少林 阅读(270) 评论(0) 推荐(0) 编辑 |

摘要:以下子过程可以获取 void GetLargestDisplayMode(int *pcxBitmap,int*pcyBitmap) { DEVMODE devMode; DWORD iModeNum =0; *pcxBitmap = *pcyBitmap = 0; ZeroMemory(&devMode,sizeof(DEVMODE)); devMode.dmSize = sizeo... 阅读全文

posted @ 2008-06-02 20:28 少林 阅读(315) 评论(2) 推荐(0) 编辑 |

摘要:在c#中可以通过互操作性服务using System.Runtime.InteropServices来调用window api函数.并且通过属性来指定api函数的位置,以及调用方式,比如,我们要调用User32.dll里的函数MessageBox(HWnd hwnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT type) 首先引入名字空间 using System.... 阅读全文

posted @ 2008-05-29 22:18 少林 阅读(1558) 评论(1) 推荐(2) 编辑 |

摘要:VC中的一些常用方法(20条) 出处 VC中的一些常用方法(20条) 2003-11-3加入 来自www.csdn.net 作者佚名 0条评论 点击5383次 一、打开CD-ROM mciSendString("Set cdAudio door open wait",NULL,0,NULL); 二、关闭CD_ROM mciSendString("Set cdAudio door ... 阅读全文

posted @ 2008-05-29 18:22 少林 阅读(976) 评论(0) 推荐(0) 编辑 |

摘要:放苹果 Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 Input 第一行是测试数据的数目t(0 int total=0; int m,n,h; void solve(int x,int k) { int i,j; if(h==0&&k=1;i--) {... 阅读全文

posted @ 2008-05-21 16:27 少林 阅读(354) 评论(1) 推荐(0) 编辑 |

摘要:算法思路: (1) 读入N进制的数,先将其转换为10进制 (2)然后再把十进制转换为M进制. (3)要用到的数据结构,栈,队列 代码如下(N,M必须小于10.) queue.h #ifndef __queue__h #define __queue__h #define MAX 100 class queue { public: queue() { head = ta... 阅读全文

posted @ 2008-05-01 21:32 少林 阅读(668) 评论(1) 推荐(0) 编辑 |

摘要:在.Net Framework SDK文档中,关于调用Windows API的指示比较零散,并且其中稍全面一点的是针对Visual Basic .net讲述的。本文将C#中调用API的要点汇集如下,希望给未在C#中使用过API的朋友一点帮助。另外如果安装了Visual Studio .net的话,在C:\Program Files\Microsoft Visual Studio ... 阅读全文

posted @ 2008-05-01 00:09 少林 阅读(272) 评论(0) 推荐(0) 编辑 |

摘要:1. 几种不同设备环境 MFC的CDC类封装了设备环境对象,CDC的成员变量m_hDC指向它的设备环境,可以创建的设备环境类型有:屏幕,打印机,只有打印机的信息部分,位图。 屏幕: 创建一个屏幕设备环境 CDC *Pdc = GetDC();//返回窗口客户区的设备环境 CDC *Pdc = GetWindowDC();//包括客户区和非客户区的设备环境 如果要对整个屏幕进行绘制; CDC *P... 阅读全文

posted @ 2008-04-24 16:23 少林 阅读(1873) 评论(0) 推荐(0) 编辑 |

摘要:1. 通过classward建立一个对话框,然后再添加两个类,CTestView和CTestDoc类,分别继承与CView和CDocument。 2. 在对话框主程序里,添加两个变量,m_TestView和m_TestDoc类别分别是CTestView 和CTestDoc. 3. 在资源管理器中添加一个按钮,命名为 CreateView,生成相应的事件。并在... 阅读全文

posted @ 2008-04-13 00:13 少林 阅读(629) 评论(0) 推荐(0) 编辑 |

摘要:一 消息 1. WM_NCACTIVATE 当客户区将要显示激活或者非激活时,WM_NCACTIVATE消息就会发送给窗口。一个窗口通过它的WindowProc函数来获取该消息。 LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window UINT uMsg, // WM_NCACTIVATE WPARA... 阅读全文

posted @ 2008-04-11 23:44 少林 阅读(990) 评论(0) 推荐(0) 编辑 |

摘要:在许多画图的程序中,大家可以拖动一个图形.其实,实现这个比较简单.只是不断的重画就可以达到预期的效果.windows是基于消息时间的系统.当我们按下左键时,便激发一个WM_LBUTTONDOWN的消息,移动鼠标时,便激发一个WM_MOUSEMOVE的消息,松开鼠标时,也会激起一个WM_LBUTTONUP的消息.所以,当我们拖动一个图形时,可以在移动鼠标时,记住图形的位置.然后使该区域无效,... 阅读全文

posted @ 2008-03-30 23:07 少林 阅读(500) 评论(0) 推荐(0) 编辑 |

摘要:windows里,任何时候,当程序向显示器或打印机进行绘制时,它必须使用gdi函数.gdi函数可以绘制点,直线,矩形,多变形,椭圆,位图和文本.为了更好的控制图形或文字在显示设备上的绘制,windows使用映射模式来解决这个问题. 在windows下,一共有三大类影射模式.分别为MM_TEXT模式,固定比例的映射模式和可变比例的影射模式.每种影射模式模式其优缺点. ... 阅读全文

posted @ 2008-03-29 20:44 少林 阅读(1323) 评论(0) 推荐(0) 编辑 |

摘要:一, 为了编写编写符合aisi和unicode的应用程序,应该遵循以下原则: 1.将文本串视为字符数组,而不是chars数组或字节数组. 2.将通用数据类型(如TCHAR和PTSTR)用于文本字符和字符串. 3.将显示数据类型(如BYTE 和 PBYTE)用于字节,字节指针和数据缓存. 4.将TEXT宏用于原义字符和字符串. 5.执行全局性替换(例如用P... 阅读全文

posted @ 2008-03-08 15:02 少林 阅读(707) 评论(1) 推荐(0) 编辑 |

摘要:WideCharToMultiByte The WideCharToMultiByte function maps a wide-character string to a new character string. The new character string is not necessarily from a multibyte character set. int WideCharTo... 阅读全文

posted @ 2008-03-07 23:46 少林 阅读(5607) 评论(0) 推荐(0) 编辑 |

摘要:IsTextUnicode The IsTextUnicode function determines whether a buffer is likely to contain a form of Unicode text. The function uses various statistical and deterministic methods to make its determinat... 阅读全文

posted @ 2008-03-07 23:26 少林 阅读(1277) 评论(1) 推荐(0) 编辑 |

摘要:击鼠标按键 双击鼠标按键是指在短时间内单击两次。要确定为双击,则这两次单击必须发生在其相距的实际位置十分接近的状况下(内定范围是一个平均系统字体字符的宽,半个字符的高),并且发生在指定的时间间隔(称为「双击速度」)内。您可以在「控制台」中改变时间间隔。 如果希望您的窗口消息处理程序能够收到双按键的鼠标消息,那么在呼叫RegisterClass初始化窗口类别结构时,必须在窗口风格中包含CS_DBLC... 阅读全文

posted @ 2008-02-26 20:44 少林 阅读(1275) 评论(3) 推荐(0) 编辑 |

摘要:1.根据id获取窗口句柄 Hwnd hwnd = GetDlgItem(hwndParent,id). 2.根据窗口句柄,获取id id = GetWindowLong(hwndChild,GWL_ID) id = GetDlgCtrlID(hwndchild). 3.获取实例句柄的若干方法 hInst = GetWindowLong(hwnd,GWL_HINSTANC... 阅读全文

posted @ 2008-02-18 17:55 少林 阅读(7095) 评论(1) 推荐(0) 编辑 |

摘要:Tree-View Controls A tree-view control is a window that displays a hierarchical list of items, such as the headings in a document, the entries in an index, or the files and directories on a disk. Ea... 阅读全文

posted @ 2008-02-18 00:53 少林 阅读(974) 评论(0) 推荐(0) 编辑 |

摘要:注册表的基本操作 (1)建立子键 LONG RegCreateKey(HKEY hKey,LPCTSTR lpSubkey,PHKEY pResult); 如果建立子键成功,则返回ERROR_SUCESS.其中PResult返回建立子键的句柄.建立了子键,就是为键设置值了. (2)为子键设置值 LONG RegSetValue(HEKY hKey,LPCTS... 阅读全文

posted @ 2008-02-15 14:52 少林 阅读(191) 评论(0) 推荐(0) 编辑 |

摘要:最近,闲着没事,发现自己的数据结构知识忘的差不多.于是,又赶紧拿起尘土飞扬的书本进行复习.今天复习了二叉树的基本概念和操作,于是用c++类对二叉树的基本操作进行了封装.分为BinaryTreeNode类和BinaryTree类.代码如下: BinaryTreeNode.cpp Code Code highlighting produced by Actipro CodeHighl... 阅读全文

posted @ 2008-02-13 12:57 少林 阅读(867) 评论(0) 推荐(0) 编辑 |

摘要:GDI+在画刷方面对gdi进行了功能上的扩展,他支持线形渐变和渐变画刷,可以填充图形,路径和区域.渐变画刷同时还可以用于绘制直线,曲线和路径.因此,可以用一个路径来设置渐变颜色.在vc++.net2005中使用gdi+,首先,需要在stafx.h中包括头文件,然后在属性中->连接器->附加引用库添加gdiplus.lib文件.然后在应用程序中的oninitapplication(),初... 阅读全文

posted @ 2008-02-12 22:45 少林 阅读(272) 评论(0) 推荐(0) 编辑 |

摘要:MFC概述 MFC是一个编程框架 MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的... 阅读全文

posted @ 2008-02-12 21:42 少林 阅读(422) 评论(0) 推荐(0) 编辑 |

摘要:图像列表控制(CImageList)是相同大小图像的一个集合,每个集合中均以0为图像的索引序号基数,图像列表通常由大图标或位图构成,其中包含透明位图模式。可以利用WINDOWS32位应用程序接口函数API来绘制、建立和删除图像,并能实现增加、删除、替换和拖动图像等操作。图像列表控制提供了控制图像列表的基本方法,这些方法在WINDOWS95及以后版本才能实现。 一、图像控制的对象结构 1 图像控制的... 阅读全文

posted @ 2008-02-11 20:51 少林 阅读(9742) 评论(0) 推荐(0) 编辑 |

摘要:本文介绍了怎样利用vc++进行qq号码盗取,主要涉及了win32api 的调用... 阅读全文

posted @ 2008-02-11 08:43 少林 阅读(1247) 评论(0) 推荐(0) 编辑 |

摘要:一 ,Static 关键字的声明 static关键字只能在类体中进行声明,如: class MyStatic { private:: static const string name; } 二,static关键字的初始化 所有的static变量的初始化必须要在类体外进行初始化,象前面... 阅读全文

posted @ 2008-01-30 14:17 少林 阅读(261) 评论(0) 推荐(0) 编辑 |

posts - 70, comments - 306, trackbacks - 0, articles - 4

Copyright © 2020 少林
Powered by .NET Core on Kubernetes