博文

简单数据库管理代码(2009-10-13 18:50:00)

摘要: 界面部分如上,代码部分不知道怎么发,可以mail我,O(∩_∩)O~......

阅读全文(1786) | 评论:0

椭圆自动变形(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:    ......

阅读全文(2409) | 评论:4

窗体处理键盘输入代码(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......

阅读全文(1871) | 评论:0

(2009-09-27 17:16:00)

摘要:最近改一个论坛,基本上已经熟悉了,现在要做的事情是: 1、把一些文字隐藏掉 2、把一些功能模块去掉 3、把论坛的logo标记换掉 4、把论坛的数据库名给改掉 5、收集网站素材 6、申请域名 7、申请论坛备案 8、申请论坛空间 9、上线 10、网站推广运营   烦啊,不过如果有想合作一起搞的请联系我,发送邮件:liudan319@qq.com  希望合作愉快。......

阅读全文(1878) | 评论:0

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......

阅读全文(1909) | 评论:0

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......

阅读全文(1356) | 评论:0

学习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中的方法。这就是优势,即派生层次越高,调用同名的方法时有时越明显......

阅读全文(2224) | 评论:0

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下载测试代码进行测试。 注:如果上面的又什么问题大家请不要小气,指出来我好修改。谢谢啦。......

阅读全文(4082) | 评论:2

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++......

阅读全文(2013) | 评论:0

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 ......

阅读全文(1945) | 评论:0