上一页 1 ··· 39 40 41 42 43 44 45 46 47 ··· 62 下一页
摘要: 最近接触到这个函数,因此了解了一下,总结一下列在这。我了解它的出发点是如何通过它向活动窗口输入字符,这是很多程序都有的功能(我猜Visual Assist X就用了这个功能)。根据MSDN,此函数模拟按键操作,将一些消息插入键盘或鼠标的输入流中,Windows对它进行处理,生成相应的WM_KEYDOWN或WM_KEYUP事件,这些事件与普通键盘输入一起进入应用程序的消息循环,它们不仅可以转换为WM_CHAR消息,还可以转换为其它(诸如加速键)等消息。使用它来发送字符消息,并没有看起来那么简单。这有两个需要考虑的问题:1. 输入法的转换。例如需要向活动窗口发送一些英文字符,我们可能想象这样来实现 阅读全文
posted @ 2011-08-29 14:29 瓜蛋 阅读(1165) 评论(0) 推荐(0) 编辑
摘要: SendInputSendInput可以将指定的鼠标键盘消息插入到系统消息队列,从而实现对鼠标键盘的模拟。有很多程序对SendInput进行了屏蔽,但不是所有的。所以这里介绍一下SendInput的使用。我已经将主要的模拟功能写在了一个单元文件中:SIMouseKeyboard.pas,调用该单元文件中的相关函数就可以实现鼠标键盘的模拟。该单元文件的下载见本楼末尾。SendInput的参数其实很... 阅读全文
posted @ 2011-08-29 14:28 瓜蛋 阅读(6118) 评论(0) 推荐(0) 编辑
摘要: TForm* TfmMain::FormExist(AnsiString szCaption){ for(int i=0; i<this->MDIChildCount; i++) { TForm *pForm = this->MDIChildren[i]; if(pForm->Caption == szCaption) return pForm; // 已存在窗体,返回该窗体 } return NULL; // 不存在窗体,返回空值}使用方法:void __fastcall TfmMain::mnuRegCli... 阅读全文
posted @ 2011-08-25 16:45 瓜蛋 阅读(696) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2011-08-25 14:18 瓜蛋 阅读(3) 评论(0) 推荐(0) 编辑
摘要: void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender, const TRect &Rect, int DataCol, TColumn *Column, TGridDrawState State){ AnsiString name= Column->Field->DataSet->FieldByName("NAME")->AsString; if(name=="功能科室"&&DataCol==1) //只绘制name为功能科室行和第二列的 阅读全文
posted @ 2011-08-25 14:14 瓜蛋 阅读(941) 评论(0) 推荐(0) 编辑
摘要: void __fastcall TForMain::stat1DrawPanel(TStatusBar *StatusBar, TStatusPanel *Panel, const TRect &Rect){ TCanvas *pCanvas=stat1->Canvas; pCanvas->Font->Color=clGreen; pCanvas->Font->Styl... 阅读全文
posted @ 2011-08-22 10:32 瓜蛋 阅读(2560) 评论(0) 推荐(0) 编辑
摘要: VC默认为__stdcall, BCB默认为__cdecl, Delphi默认为__fastcall。 由于BCB使用Delphi的VCL库, 所以也必须使用__fastcall。 关键字 调用规则 参数传递方向 返回 参数寄存器 堆栈的清除 __cdecl C调用规则 从右向左 EAX 无 调用者 __fastcall 寄存器 从左向右 EAX EAX、EBX、ECX 被调用者 __stdcal... 阅读全文
posted @ 2011-08-20 22:10 瓜蛋 阅读(801) 评论(0) 推荐(0) 编辑
摘要: 2008-09-16 14:54 1049人阅读 评论(1) 收藏 举报 __cdecl和__stdcall都是函数调用规范(还有一个__fastcall),规定了参数出入栈的顺序和方法,如果只用VC编程的话可以不用关心,但是要在C++和Pascal等其他语言通信的时候就要注意了,只有用相同的方法才能够调用成功.另外,像printf这样接受可变个数参数的函数只有用cdecl才能够实现. __dec... 阅读全文
posted @ 2011-08-20 21:55 瓜蛋 阅读(485) 评论(0) 推荐(0) 编辑
摘要: 1.概述许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义:void a;这行语句编译时会出错,提示“illegal use of type 'void'”。不过,即使void a的编译不会出错,它也没有任何实际意义。void真正发 阅读全文
posted @ 2011-08-20 21:23 瓜蛋 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 学习过的东西,不总结是不行滴~~ 阅读全文
posted @ 2011-08-20 19:26 瓜蛋 阅读(204) 评论(0) 推荐(0) 编辑
上一页 1 ··· 39 40 41 42 43 44 45 46 47 ··· 62 下一页