博文
椭圆自动变形(2009-09-30 17:09:00)
摘要:下面这段代码是在窗口中按下CTROL后画一个椭圆。然后按上下左右键改变椭圆的形状,pageup pagedown键改变椭圆位置。
具体请看代码。呵呵
//全局变量
int icount;int lx=200,ly=200,rx=400,ry=300;//矩形的长宽高#ifndef VK_PAGE_UP#define VK_PAGE_UP 0x021#define VK_PAGE_DOWN 0x022#endif
//具体代码处理逻辑
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam){ HDC hdc; PAINTSTRUCT ps; HPEN hP; switch(message) { case WM_KEYDOWN: { switch(wParam) { case VK_CONTROL: icount=1; lx=200,ly=200,rx=400,ry=300; InvalidateRect(hWnd,NULL,TRUE); break; case VK_RIGHT: ......
窗体处理键盘输入代码(2009-09-29 21:19:00)
摘要:此代码仅支持ctrl \up\down\shift的简单处理。组合键还在学习中。有知道的可以共享一下。先谢谢啦
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam){ HDC hdc; PAINTSTRUCT ps; TEXTMETRIC tm; //PIONT pt; char *str[]= { "您按了UP键", "您按了SHIFT键", "您按了CTRL和A键", "您按了DOWN键" }; //RegisterHotKey(hWnd,1,VK_CONTROL,VK_A); switch(message) { case WM_KEYDOWN: { switch (wParam) { case VK_UP: icount=1; break; case VK_SHIFT: icount=2; break; case VK_CONTROL: icount=3; break; case VK_DOWN://&&VK_B: icount......
烦(2009-09-27 17:16:00)
摘要:最近改一个论坛,基本上已经熟悉了,现在要做的事情是:
1、把一些文字隐藏掉
2、把一些功能模块去掉
3、把论坛的logo标记换掉
4、把论坛的数据库名给改掉
5、收集网站素材
6、申请域名
7、申请论坛备案
8、申请论坛空间
9、上线
10、网站推广运营
烦啊,不过如果有想合作一起搞的请联系我,发送邮件:liudan319@qq.com 希望合作愉快。......
vc实现字体的移动和变色(2009-09-27 17:10:00)
摘要:代码如下,具体意思不再赘述,很简单.
#include<windows.h>#include<stdlib.h>#include<string.h>
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,UINT wParam,LONG lParam);BOOL InitWindowsClass(HINSTANCE hInstance);BOOL InitWindow(HINSTANCE hInstance,int nCmdShow);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lPCmdLine,int nCmdShow){ MSG Msg; if(!InitWindowsClass(hInstance)) { return FALSE; } if(! InitWindow(hInstance,nCmdShow)) { return FALSE; }
while(GetMessage(&Msg,0,0,0)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return Msg.wParam;}
//define the windowclassnameBOOL InitWindowsClass(HINSTANCE hInstance){ WNDCLASS windowclass; windowclass.cbClsExtra=0; windowclass.cbWndExtra=0; windowclass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH)); windowclass.hCursor=LoadCursor(NULL,IDC_ARROW); windowclass.hIcon=LoadIc......
windows第一个程序(2009-09-24 22:05:00)
摘要:#include<windows.h>#include<stdlib.h>#include<string.h>
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG IParam); // 获取BOOL InitWindowsClass(HINSTANCE hInstance);BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){ MSG Message; if(!InitWindowsClass(hInstance)) { return FALSE; } if(!InitWindows(hInstance,nCmdShow)) { return FALSE; } while(GetMessage(&Message,0,0,0)) { TranslateMessage(&Message); DispatchMessage(&Message); } return Message.wParam;}
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG IParam){ HDC hDC; HBRUSH hBrush; HPEN hPen; PAINTSTRUCT PtStr; switch(iMessage) { case WM_PAINT: hDC=BeginPaint(hWnd,&PtStr); SetMapMode(hDC,MM_ANISOTROPIC); hPen=(HPE......
学习C++多重继承遇到的问题及解决(2009-09-23 22:26:00)
摘要:先说下问题,我声明了一个基类,X,然后又从X虚拟派生了两个类,Y,Z。接着定义类A,A从Y,Z派生而来。X,y,z中均含有一个void f()函数。现在我在main中定义如下:X *px;A a;px=&a;px->f();delete px;在运行的时候发现px->f()调用的是X中的f().而不是我想像中的A中指定的Y::f()中的f(),经过查阅书本,问题已经解决,先归纳如下:X,Y,Z类中都含有同一个方法,A有派生于Y,Z,因此定义了一个A的实例后,调用f()方法,在这里如果不指名调用哪一个类中的方法,将会产生错误,为了避免此问题的产生,可以采取的方法如下:(假设我们调用的事Y类中的方法)1、在A类中指名,如:using Y::f();2、在代码中使类Y的派生层次高于类Z的派生层次,因为派生层次越高,调用具有同名的方法时优势越大。举个例子: 在这个问题中我们可以这样定义:我们可以使 Y:virtual public X{ public: void f();}Z:public Y{}A:public Z,virtual public X{}此时声明A的实例在调用f()。则调用的是Y中的方法。还有: Y:virtual public X{ public: void f();}Z:virtual public X{}A:public Y,public Z{}此时声明A的实例在调用f()。则调用的也是Y中的方法。这就是优势,即派生层次越高,调用同名的方法时有时越明显......
vc6.0++Zthread库添加于编译(2009-09-23 15:13:00)
摘要:这两天都在搞Zthread库,因为要学习C++并发,现在我把我搞的结果写出来和大家分享。
1、从www.zthread.sourceforge.net下载Zthread源文件
2、将include\下的zthread文件夹考到vc安装目录下,如:\Microsoft Visual Studio\VC98\Include
3、新建一个vc静态库的工程,将src文件下的.cxx文件导入到工程中去。注意:在src文件夹下还有其他文件夹,不要将这些文件夹里的.cxx 文件导入到工程中去,以免与src文件下的cxx文件冲突
4、打开“工程\设置\c/c++\code gerenation中的use run timeliberty,选择多线程
5、编译
6,将zthread.lib考到vc安装目录下,如:Microsoft Visual Studio\VC98\Lib
7,从www.zthread.sourceforge.net下载测试代码进行测试。
注:如果上面的又什么问题大家请不要小气,指出来我好修改。谢谢啦。......
c++模板学习笔记(1)(2009-09-13 15:48:00)
摘要:今天在学习C++的时候遇到一个问题,就是编译的时候总是提示一个一个错误,错误信息如下:
error C2087: '<Unknown>' : missing subscript
源代码如下:
#include<iostream.h>#include<stddef.h>template<int R,int C,typename T>int init(T a[R][C]){ for(int i=0;i<R;i++) for(int j=0;j<C;j++) a[i][j]=i*j; for(int k=0;k<R;k++) for(int l=0;l<C;l++) { cout<<"k="<<k<<"l="<<l<<endl; cout<<a[k][l]<<endl; } return 1;}int main(){ int a[10][20]; init<10,20,int>(a); cin.get(); return 0;}
检查了半天才发现是因为编译器不支持动态数组的缘故,函数在应用时参数要采用指针的格式。
现将代码修改如下:
#include<iostream.h>#include<stddef.h>template<int R,int C,typename T>int init(T (*a)[C]){ for(int i=0;i<R;i++) for(int j=0;j<C;j++) a[i][j]=i*j; for(int k=0;k<R;k++) for(int l=0;l<C;l++......
sql高级编程(2009-06-01 18:46:00)
摘要:今天上班闲着无事,写了个SQL例子,以供参考
1、--创建一个数据库create database test_danliu2、--创建一个表CREATE TABLE [dbo].[testuser]( [ID] [int] NOT NULL, [username] [char](10) COLLATE Chinese_PRC_CI_AS NOT NULL, [usersex] [char](2) COLLATE Chinese_PRC_CI_AS NULL, [address] [char](100) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_testuser] PRIMARY KEY CLUSTERED ( [ID] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRIMARY]3、--创建不带参的存储过程create procedure [dbo].[table_testuser]asdeclare @i intset @i=0while(@i<10)beginInsert into testuser values(@i,'we','女','安徽')set @i=@i+1end4、--创建含不含输出参数的存储过程create procedure [dbo].[checktestuser] @parausername ......
