12 2012 档案
摘要:GetSysColor 得到系统字体,例:GetSysColor (COLOR_WINDOWTEXT),GetSysColor (COLOR_WINDOWTEXT)InvalidateRect (hwnd, NULL, TRUE) 重绘,发送重绘消息ChooseFont() 弹出选择字体对话框GetClientRect (hwnd, &rect) ; 得到客户区区域
阅读全文
摘要:GDI:TextOut() 最低级的文本输出函数,速度最快,没有裁剪,不能带tab(tab键被忽略)TabbedTextOut() 上面函数的带tab版本ExtTextOut() TextOut升级版,可以调整字符间距和裁剪矩形DrawText() TextOut升级版,可以是多行文本,指定一个Rect,会自动换行,可以设置对齐方向DrawTextEx() drawText升级版,可以指定tab的显示方式GetTextExtentPoint32() 测量某文本的显示区域GetTabbedTextExtent() 测量带tab键的字符串的显示区域GetTextExtentExPoint() 根据
阅读全文
摘要:Methods of File ObjectsThe rest of the examples in this section will assume that a file object calledfhas already been created.To read a file’s contents, callf.read(size), which reads some quantity of data and returns it as a string or bytes object.sizeis an optional numeric argument. Whensizeis omi
阅读全文
摘要:string的ljust()、rjust()、center()用来对齐>>> for x in range(1, 11):... print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')... # Note use of 'end' on previous line... print(repr(x*x*x).rjust(4))... 1 1 1 2 4 8 3 9 27 4 16 64 5 25 125 6 36 216 7 49 343 8 64 512 9 81 7...
阅读全文
摘要:dir函数用来查看上下文dir()会列出当前上下文的所有变量、模块、函数等等,把得到的值再传给dir可以像下查看>>> import fibo, sys>>> dir(fibo)['__name__', 'fib', 'fib2']>>> dir(sys) ['__displayhook__', '__doc__', '__egginsert', '__excepthook__', '__loader__',
阅读全文
摘要:>>> tel = {'jack': 4098, 'sape': 4139}>>> tel['guido'] = 4127>>> tel{'sape': 4139, 'guido': 4127, 'jack': 4098}>>> tel['jack']4098>>> del tel['sape']>>> tel['irv'] = 4127>
阅读全文
摘要:Set包含不重复元素,用{}或者set()创建,有于或非等运算符>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}>>> print(basket) # show that duplicates have been removed{'orange', 'banana', 'pear', 'apple'}>&g
阅读全文
摘要:定义函数>>> def fib(n): # write Fibonacci series up to n... """Print a Fibonacci series up to n."""... a, b = 0, 1... while a < n:... print(a, end=' ')... a, b = b, a+b... print()...>>> # Now call the function we just defined:... fib(2000)0 1 1
阅读全文
摘要:if>>> x = int(input("Please enter an integer: "))Please enter an integer: 42>>> if x < 0:... x = 0... print('Negative changed to zero')... elif x == 0:... print('Zero')... elif x == 1:... print('Single')... else:... print('More')...Moref
阅读全文
摘要:动态数组,可以存储不同数据类型>>> a = ['spam', 'eggs', 100, 1234]>>> a['spam', 'eggs', 100, 1234]和string一样,支持索引,+,*>>> a[0]'spam'>>> a[3]1234>>> a[-2]100>>> a[1:-1]['eggs', 100]>>> a[:2] + ['bacon'
阅读全文
摘要:多行文本以\结尾,换行还是要用\nhello = "This is a rather long string containing\n\several lines of text just as you would do in C.\n\ Note that whitespace at the beginning of the line is\ significant."print(hello)多行原格式文本用"""或者'''围绕。里面的换行就是换行print("""\Usage: thin
阅读全文
摘要:python默认的除法运算时浮点运算如:1/3 0.33333333333如果想要整除结果,要用//如:1//3 0
阅读全文
摘要:import sitesite.getusersitepackages()上面代码可以得到import的导入包文件夹,只要把自己的py文件放到这个文件夹里,那么每个.py文件执行的时候都会导入
阅读全文
摘要:转自:http://blog.csdn.net/tuwen/article/details/2182838__stdcall,__cdecl,_cdecl,_stdcall,。__fastcall,_fastcall 区别简介1.今天写线程函数时,发现msdn中对ThreadProc的定义有要求:DWORD WINAPI ThreadProc(LPVOID lpParameter);不解为什么要用WINAPI宏定义,查了后发现下面的定义。于是乎需要区别__stdcall和__cdecl两者的区别; #define CALLBACK __stdcall#define WINAPI __stdca
阅读全文
摘要:cdecl格式的调用要用 p = ctypes.cdll.LoadLibrary('a.dll') 或者 p = ctypes.CDll('a.dll')stdcall用 p = ctypes.windll.LoadLibrary('a.dll') 或者 p = ctypes.WinDll('a.dll')一般c++用的是__cdecl,windows里大都用的是__stdcall(API), win32中的CALLBACK是__stdcall
阅读全文
摘要:导入ctypes以后cdll.msvcrt为标准c的函数库,可以调用标准C里的函数,如from ctypes import *libc = cdll.msvcrtprint(libc.printf)print(libc.time(None))print(libc.sin(2))windll代表windows的一些常用dll,如from ctypes import *libc = cdll.msvcrtprint(hex(windll.kernel32.GetModuleHandleA(None)))
阅读全文
摘要:转自:http://blog.csdn.net/xust999/article/details/6073299用了些时间学习了下LIB和DLL的一些知识,看了很多人的文章,也自己总结了一些,出于自己的理解...1、LIB与DLL文件的区别2、静态编译和动态链接的23事...3、*.h、*.lib/*.a、*.dll 之间的关系4、为无LIB的DLL制作LIB函数符号输入库 5、调用dll文件 <这里分C版接口和C++版接口,要弄清概念>6、DEV-C++编写dll文件的几个知识点1、DLL是一个完整的程序,中文名称为“动态链接库”,DLL中包含的主要有三块内容:1.全部变量 2.函
阅读全文
摘要:转自:http://hi.baidu.com/lewutian/item/b6953bc56f966345a8ba94b9一、内联汇编的优缺点 因为在Visual C++中使用内联汇编不需要额外的编译器和联接器,且可以处理Visual C++中不能处理的一些事情,而且可以使用在C/C++中的变量,所以非常方便。内联汇编主要用于如下场合: 1.使用汇编语言写函数; 2.对速度要求非常高的代码; 3.设备驱动程序中直接访问硬件; 4."Naked" Call的初始化和结束代码。 //(."Naked",理解了意思,但是不知道怎么翻译^_^,大概就是不需要C/
阅读全文
摘要:如果你在Form中绘图的话,不论是不是采用的双缓存,都会看到图片在更新的时候都会不断地闪烁,解决方法就是在这个窗体的构造函数中增加以下三行代码:请在构造函数里面底下加上如下几行:SetStyle(ControlStyles.UserPaint, true);SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲参数说明:UserPaint如果为 true,控件将自行绘制,而不是通过操作系统来绘制。此样式仅适用于派生自 Cont
阅读全文
摘要:上图片为rar合并图片,图片另存为后后缀改为rar,可以解压缩出项目。private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; Bitmap bitmap = new Bitmap("p.png");//如果用png图片,格式是rgb,如果用大小如240,240,格式是rgba BitmapData data = bitmap.LockBits(new Rectangle(0, 0, 200, 200),...
阅读全文
摘要:方法: 1:准备一张图片,Y.jpg。准备目标文件,比如Y.txt。目标是把Y.txt隐藏在图片里面。2:把要隐藏的文件 Y.txt 压缩。生成 Y.rar 压缩包(或zip)3:打开命令提示符4:如果两个文件都存放在D:下。输入命令:copy /b D:Y.jpg + D:Y.rar D:Q.jpgjpg和rar文件可以合并成一个文件,这个文件即是jpg也是rar,用画图程序打开就是jpg,用winRAR打开就是压缩文件。这样的文件可以上传到网站上,看到的时候是个图片,另存为以后改下后缀名或者用winRAR打开就是个压缩文件。
阅读全文
摘要:<script type="text/javascript"><!--window.onload=function(){objDiv = document.getElementById('drag');drag(objDiv);};function drag(dv){dv.onmousedown=function(e){var d=document;e = e || window.event;var x= e.layerX || e.offsetX;var y= e.layerY || e.offsetY;//设置捕获范围if(dv.set
阅读全文
摘要:转自:http://blog.csdn.net/wl58796351/article/details/8122003C# .NET中如何使用GetCursorPos函数 例程using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;namespace CursorPo
阅读全文
摘要:转自:http://www.cnblogs.com/SUPERAI/archive/2011/11/28/2266519.html曾几何时,需要在一个控件里知道,并且不仅仅知道鼠标在控件自身上时的移动消息。还要知道鼠标在控件的子控件上甚至是控件之外的控件上。也许手动将控件的鼠标移动事件绑定到一起是一个办法,但是总觉得那么不尽如人意。不符合在一个地方处理消息的感觉。修饰那么多也不如代码的直接:123456789101112131415publicclassGlobalMouseHandler : IMessageFilter{privateconstintWM_LBUTTONDOWN = 0x2
阅读全文
摘要:setCapture方法可以让窗口将所有的鼠标消息据为己有,也就是独占鼠标消息。RegisterHotKey方法可以给程序注册全局的键盘快捷键。另外setCursorPos和getCursorPos可以用来获取或设置鼠标位置。官方鼠标键盘消息文档
阅读全文
摘要:转自:http://blog.csdn.net/lf8289/article/details/2322550在python中调用dll文件中的接口比较简单,实例代码如下:如我们有一个test.dll文件,内部定义如下:extern"C"{int__stdcalltest(void*p,intlen){returnlen;}}在python中我们可以用以下两种方式载入1.importctypesdll=ctypes.windll.LoadLibrary('test.dll')2.importctypesdll=ctypes.WinDll('test.d
阅读全文
摘要:const char *cs = typeid(*point).name();上面的代码可以获得指针指向的类的类型名下面的代码判断某个指针指向的实例是否是某个类的实例,相当于java的instanceof#include <iostream> using namespace std; class A{ virtual void f(){};}; class B: public A{}; int main(){ A *a = new B; if (typeid(*a) == typeid(B)) { cout << "a is pointed to B...
阅读全文
摘要:转自:http://www.sf.org.cn/Article/base/200805/21024.html多态性 (polymorphism) 是面向对象编程的基本特征之一。而在 C++ 中,多态性通过虚函数 (virtual function) 来实现。我们来看一段简单的代码: #include <iostream> using namespace std; class Base { int a; public: virtual void fun1() {cout<<"Base::fun1()"<<endl;} virtual voi
阅读全文
摘要:转自:http://blog.csdn.net/qiqi5521/article/details/2207562图像的缩放很好理解,就是图像的放大和缩小。传统的绘画工具中,有一种叫做“放大尺”的绘画工具,画家常用它来放大图画。当然,在计算机上,我们不再需要用放大尺去放大或缩小图像了,把这个工作交给程序来完成就可以了。下面就来讲讲计算机怎么来放大缩小图象;在本文中,我们所说的图像都是指点阵图,也就是用一个像素矩阵来描述图像的方法,对于另一种图像:用函数来描述图像的矢量图,不在本文讨论之列。越是简单的模型越适合用来举例子,我们就举个简单的图像:3X3 的256级灰度图,也就是高为3个象素,宽也是3
阅读全文
摘要:http://www.codeproject.com/Articles/42529/Outline-Text
阅读全文
摘要:// gdiTest.cpp : Defines the entry point for the application.//#include "stdafx.h"#include "gdiTest.h"#include <objidl.h>#include <GdiPlus.h>using namespace Gdiplus;#pragma comment (lib,"Gdiplus.lib")#define MAX_LOADSTRING 100VOID OnPaint(HDC hdc){ Graphics
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_58c3f79601018b8i.html只有内置类型存在字面值,没有类(class)类型字面值.例如:0是int类型的字面值,3.14159是double类型的字面值.整型浮点字面值20 // decimal 十进制024 // octal 八进制0X14 // hexadecimal 十六进制128u ,128U // unsigned1024UL // unsigned long1L // long 长整形8Lu // unsigned long3.14159F = 3.14159E0F // float ,科学计数.0
阅读全文
摘要:转自:http://blog.csdn.net/long458/article/details/6386562基于C的文件操作在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。一、流式文件操作这种方式的文件操作有一个重要的结构FILE,FILE在头文件stdio.h中定义如下:typedef struct {int level; /* fill/empty level of buffer */unsigned flags; /* File status flags */char fd; /* File descriptor */unsigned ch
阅读全文
摘要:在消息循环中加下面代码case WM_ERASEBKGND: break;
阅读全文
摘要:#pragma comment(lib,"d2d1.lib")加上面的代码。或者项目上右键->properties->linker->Input->Additional Dependencies
阅读全文
摘要:转自:http://hi.baidu.com/aidfan/item/93e062758f50602ad7a89c38今天尝试跟踪桌面窗口(SysListView32)控件,需要在该控件每次刷新时修改一下其刷新区域。开始以为它一定会调用InvalidateRect函数,于是就Hook了对InvalidateRect函数的调用,结果我惊讶的发现,该控件只有在全刷新(在桌面上按F5)或者某个图标项进行编辑状态(按F2键)时,才会有一次InvlidateRect函数的调用,在平时选中或反选图标项的情况下,InvalidateRect函数并未调用! 这是何故?难道在选中反选某个图标项时,这个控件不是.
阅读全文
摘要:转自:http://cnbeta2004.blog.163.com/blog/static/602313402010119104451537/早前曾为此问题在CSDN发帖求助(GDI+ 如何使用双缓冲绘制图像),得到了一个GDI+下较可行的方法,虽然绘制效果比直接绘制要好一些,不过还不能跟GDI的双缓冲方式比肩。现在,我终于找到了一个理想的实现方式,效果与GDI的实现不相上下,代码如下:/*C++ code*/RECT rc;GetClientRect(g_hwnd,&rc);Bitmap bmp(int(rc.right),int(rc.bottom));Graphics bmpGr
阅读全文
摘要:转自:http://blog.csdn.net/yann2/article/details/5948826一般的windows复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。先来谈谈闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。一般显卡的刷新周期是1/80秒左右,具体数字可以自己设置的。这样问题就来了,一般画图都是先画背景色,然后再把内容画上去,如果这两次操作不在同一个刷新周期内完成,那么给人的视觉感受就是,先看到只有
阅读全文
摘要:进程空间http://blog.csdn.net/yeming81/archive/2008/01/16/2046193.aspx内存状态查询http://blog.csdn.net/yeming81/archive/2008/01/16/2046207.aspx虚拟内存http://blog.csdn.net/yeming81/archive/2008/01/17/2047879.aspx内存映射文件http://blog.csdn.net/yeming81/archive/2008/01/18/2050521.aspx堆http://blog.csdn.net/yeming81/archi
阅读全文
摘要:c++的创建对象和java区别很大,java里所有的复杂类型(如 类实例)都是分配到堆中的,而c++则更灵活,所有的变量,不管什么类型,都可以自己指定分配到堆中还是栈中。分配到栈中的写法:Class object("param");//即声明又定义,调用默认构造函数 相当于Class object = Class("param");object = Class("param");//重新创建分配到堆中的写法:Class *p ;//声明p = &new Class();//定义把变量分配到栈中和堆中都有各自的好处,要看情况而定
阅读全文
摘要:在用vs写win32的c++程序时是没有命令行的,所以printf是不能用的。但是调试的时候可以调用函数OutputDebugString来想vs的“输出”窗口里输出调试内容。像java中的System.out.println一样往IDE的调试窗口里输出信息。OutputDebugString只接受字符串指针,如果要输出其他格式,如int型,可以用sprintf把字符转成字符串,在传给OutputDebugString。例子: char chInput[512] ; sprintf(chInput,"int:%d\n",500); OutputDebugString( ch
阅读全文
摘要:转自:http://wjl4926.blog.163.com/blog/static/97330204201022655940987/sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char *format [, argument] ... );除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:格式化字符串上。printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以"%"开头的格式说明符(format specifications)来占据一个位置,在后边
阅读全文
摘要:转自:http://blog.chinaunix.net/uid-21254310-id-1828938.html一. 何谓可变参数int printf( const char* format, ...); 这是使用过C语言的人所再熟悉不过的printf函数原型,它的参数中就有固定参数format和可变参数(用”…”表示). 而我们又可以用各种方式来调用printf,如:printf( "%d ",value); printf( "%s ",str); printf( "the number is %d ,string is:%s "
阅读全文
摘要:转自:http://blog.chinaunix.net/uid-21254310-id-1828938.htmlvolatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改。用volatile关键字声明的变量i每一次被访问时,执行部件都会从i相应的内存单元中取出i的值。没有用volatile关键字声明的变量i在被访问的时候可能直接从cpu的寄存器中取值(因为之前i被访问过,也就是说之前就从内存中取出i的值保存到某个寄存器中),之所以直接从寄存器中取值,而不去内存中取值,是因为编译器优化代码的结果(访问cpu寄存器比访问ram快的多)。以上两种情况的区别在于被编
阅读全文
摘要:Graphics类提供很多的drawing方法,如下表DrawLine MethodsDrawRectangle MethodsDrawEllipse MethodsDrawArc MethodsGraphics::DrawPathDrawCurve MethodsDrawBezier Methods这些方法都需要一个Pen对象做为第一个参数。用Pen画线和矩形 Using a Pen to Draw Lines and Rectangles设置Pen的宽度和对齐方式 Setting Pen Width and Alignment画带头的线 Drawing...
阅读全文
摘要:新建win32项目,拷贝下面代码到Main函数所在cpp// gdiTest.cpp : Defines the entry point for the application.//#include "stdafx.h"#include "gdiTest.h"#include <objidl.h>#include <GdiPlus.h>using namespace Gdiplus;#pragma comment (lib,"Gdiplus.lib")#define MAX_LOADSTRING 100VOID
阅读全文
摘要:在获取wpf自定义组件的宽度和高度的时候,如果直接在InitializeComponent();后面用this.Width,和this.ActualWidth会得到Nan和0,因为组件还没有被计算大小。要获得组件的宽度和高度可以添加Loaded事件的响应函数,在事件函数里面在用this.Width就可以得到组件的宽度。public lineNet(){ InitializeComponent(); Loaded += delegate { Line line11 = new Line(); Line line12 = new Line(); ...
阅读全文
摘要:原文:http://blog.csdn.net/wojiushiwo987/article/details/8280478
阅读全文
摘要:转自:http://wugang2126.blog.51cto.com/329386/831041简单来说,程序是由一个cpp构成的,而这些独立的cpp最终构成的是一个树型或网型结构的整体程序,将这些独立的cpp连接到一起的就是.h文件,在一个cpp的实现中要用到一个类库或者另一个cpp中实现的函数,那就要#include这个cpp对应的头文件。这样是告诉编译器,你调用的函数是什么样的,多少个参数,之后会对应cpp生成obj文件,在将这些obj文件根据cpp里的#include .h连接到一起。总结:感觉c语言比java麻烦不少,毕竟c语言是为了获得性能,比较接近机器的思维习惯的,而java则
阅读全文
摘要:在c++中时不支持变量作为数组长度参数的,如 int n=10;byte bs[n]; 这样写会提示编译错误”表达式必须含有常量值“。虽然用变量声明数组大小会报编译错误,但是可以通过指针来动态申请空间实现动数组长度的变量赋值,写法如下:1 int length = 10;2 int * varArray;3 varArray = new int[length];这样varArray就可以当做数组来用了,这个数组的长度可以在程序运行时由计算得来。如果是普通的数组如int is[10] 编译时必须能确定数组长度,不然会报编译错误,这样灵活性受限比较大。我想这个就是new的存在原因之一吧,在栈中分.
阅读全文
摘要:头文件里包含很多内存操作的函数,可以简化开发、提高效率。memcpy, wmemcpy拷贝内存memset, wmemset给某段内存赋值memchr, wmemchr在内存中查找某字符memcmp, wmemcmp比较内存中的字符memmove, wmemmove移动内存值标准库:stdup() 在堆上创建空间并复制字符串,记得调用delete或free
阅读全文

浙公网安备 33010602011771号