/*
调用DOS程序时不显示窗口
使 用 ShellExecute调 用 DOS程 序 时 可 以 不 显 示 窗 口 , 如 :*/
ShellExecute(, "open", "c:\\tools\\arj.exe", "a c:\\p.arj c:\\*.bat c:\\*.sys", NULL, SW_HIDE);  
/*产生随机数代码*/
int SecVal;
AnsiString Hour,Minute,Second;
int RandomVal;
Hour=Now().FormatString("hh");
Minute=Now().FormatString("nn");
Second=Now().FormatString("ss");
SecVal=StrToInt(Hour)*+StrToInt(Minute)*+StrToInt(Second);
for(int i=;i<=SecVal;i++)
{
RandomVal=random();
}
Form1->Caption=IntToStr(RandomVal);
/*得到文件版本的函数*/
AnsiString __fastcall TMainForm::returnversion( void )
{
int ii;
unsigned int jj = sizeof( VS_FIXEDFILEINFO );
char *pp, pp2[];
AnsiString ss;
VS_FIXEDFILEINFO *aa;
void **pp1 = (void **)&aa;
pp2[] = ;
ss = "()";
ii = GetFileVersionInfoSize( Application->ExeName.c_str(), NULL );
if( ii != ) {
pp = new char[ii];
if( GetFileVersionInfo( Application->ExeName.c_str(),
, ii, pp ) ) {
if( VerQueryValue( pp, "\\", pp1, &jj ) ){
ss = " V";
ss += IntToStr( HIWORD(aa->dwFileVersionMS) )+".";
ss += IntToStr( LOWORD(aa->dwFileVersionMS) )+".";
ss += IntToStr( HIWORD(aa->dwFileVersionLS) )+"(build:";
ss += IntToStr( LOWORD(aa->dwFileVersionLS) )+")";
}
}
delete pp;
}
return ss;
}
/*
得到正在运行的WINDOWS版本
WINDOWS版本多的很,你想这么多总是会存在着不兼容性,所以看看清它是什么有时会很重要!
加入下要的代码吧:*/
void __fastcall TForm1::FormCreate(TObject *Sender)
{
OSVERSIONINFO info ;
info.dwOSVersionInfoSize = sizeof (info) ;
GetVersionEx (&info) ;
switch (info.dwPlatformId)
{
case VER_PLATFORM_WIN32s:
Label1->Caption = "System: Windows Win 32s" ;
break ;
case VER_PLATFORM_WIN32_WINDOWS:
Label1->Caption = "System: Windows 95" ;
break ;
case VER_PLATFORM_WIN32_NT:
Label1->Caption = "System: Windows NT" ;
break ;
default:
Label1->Caption = "System: Unknown" ;
break ;
}
Label2->Caption = String ("Version: ")
+ String ((int) info.dwMajorVersion) + "." + String((int)info.dwMinorVersion) ;
Label3->Caption = String ("Build: ") + String ((int) (info.dwBuildNumber & 0xFFFF)) ;
Label4->Caption = String ("System Info: '") + info.szCSDVersion + "'" ;
} /*
让TRichEdit自动滚动
我们用TIMER加上对WINDOWS发消息就可以实现了!
*/
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
SendMessage(RichEdit1->Handle, EM_SCROLL, SB_LINEDOWN, );
} /*
除了一行一行的向下滚还可以有什么效果呢?看看下面!
*/
SB_LINEDOWN 向下一行
SB_LINEUP 向上一行
SB_PAGEDOWN 向下一页
SB_PAGEUP 向上一页 /*
改一下就行了。
如何加入主页链接
你是不是有注意在一些软件中有一个htpp://www.XXX.com/一点就会在浏览器中自动打开这个主页。我们要如何实现这一步呢?简单的很看看下面!
在窗体上加入一个LABEL;
定义Label的CAPTION为“加密金刚锁主页”;
加入下面代码:
*/
void __fastcall TForm2::Label1Click(TObject *Sender)
{
ShellExecute(Handle,"open","http/www.encrypter.net",,,SW_SHOW);
} /*
好了,你可以点了,当然你出入一些特效如Cursor变成手形就更好了!
如何检测本机是否与Internet连接
*/
HRASCONN TMainForm::CheckForConnections()
{
char buff[];
RASCONN rc;
rc.dwSize = sizeof(RASCONN);
DWORD numConns;
DWORD size = rc.dwSize;
// Enumerate the connections.
DWORD res = fRasEnumConnections(&rc, &size, &numConns);
if (!res && numConns == )
// No connections, return 0.
return ;
if (res) {
// Error. Report it.
fRasGetErrorString(res, buff, sizeof(buff));
Memo1->Lines->Add(buff);
} else {
// Get the connection status.
RASCONNSTATUS status;
status.dwSize = sizeof(status);
res = fRasGetConnectStatus(rc.hrasconn, &status);
if (res) {
// Error. Report it.
fRasGetErrorString(res, buff, sizeof(buff));
Memo1->Lines->Add(buff);
return ;
} else {
// Found connection, show details.
if (status.rasconnstate == RASCS_Connected) {
Memo1->Lines->Add("Existing connection found:");
Memo1->Lines->Add(" Device type: " +
String(rc.szDeviceType));
Memo1->Lines->Add(" Device name: " +
String(rc.szDeviceName));
Memo1->Lines->Add(" Connected to: " +
String(rc.szEntryName));
return rc.hrasconn;
} else {
// A connection was detected but its
// status is RASCS_Disconnected.
Memo1->Lines->Add("Connection Error");
return ;
}
}
}
return ;
} /*
如何显示和不显示鼠标
在超级解霸中我们以发现,在播放的时候MOUSE会自动消失,这样的效果有时真的有用,它是如何实现的。
在WINDOWS中API函数ShowCursor(bool bShow);是这个程序的主角。当bShow为true,Mouse出现,为false,MOUSE消失。下面我们来做一个单击窗体MOUSE消失,再击又出来的效果。
*/
void __fastcall TForm1::FormClick(TObject *Sender)
{
if(i==)
ShowCursor(false);
if(-i==)
ShowCursor(true);
i=-i;
} /*
你可以跟据需要来做出各种效果!
如何显示透明图片
GIF是可以透明的,但是只能支持256色,BMP不支持透明但可以支持真彩,有没有方法可以实现BMP的透明呢?答案是肯定的。
我们点一个BUTTON是出现透明的图片画在FORM上的效果!
*/
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Graphics::TBitmap *pBitmap=new Graphics::TBitmap();
pBitmap->LoadFromFile("test.bmp");//图片文件
pBitmap->Transparent = true; //设置透明属性为真
pBitmap->TransparentColor=clBlack;//设置透明色为黑色
pBitmap->TransparentMode = tmAuto;
Form1->Canvas->Draw(,,pBitmap);
delete pBitmap;
} /*
如何自己写代码遍历文件夹?
比如 遍历C:\winnt\ 下的所有文件夹,并把所有文件夹的名字写入到C:\folder.txt中去
*/
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TSearchRec sr;
TStringList* sss=new TStringList();
if (FindFirst("c:\\winnt", iAttributes, sr) == )
{
do
{
if ((sr.Attr & iAttributes) == sr.Attr)
{
sss->Add(sr.Name);
}
} while (FindNext(sr) == );
FindClose(sr);
}
sss->SaveToFile("c:\\folder.txt");
} /*
锁定鼠标
以下是锁定在Form中的例子,如果你想锁定你规定的区域,改变 R 即可。
譬如
*/
R = Rect(,,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN)); /*
锁定在Form中:
*/
TRect R;
R = BoundsRect;
ClipCursor(&R); /*
解锁
*/
TRect R;
R = Rect(,,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN));
ClipCursor(&R); /*
拖动一个无标题栏的窗体
在前面我们刚说了如何做一个不规则的窗体,这时我们会有一个新问题,不规则的窗体我们不能让标题栏还在上面,这样多不好看,那没有有标题栏我们如何来拖动这个窗体呢?下面我们先看看分析吧!
*/
Windows分客户区和非客户区(标题栏、菜单、窗口框),我们只要在点下客户区时发出在非客户区标题栏的消息就能达到目的了。看看是如何做到的。
void __fastcall TForm1::CreateParams(TCreateParams &Params)
{
TForm::CreateParams(Params);
Params.Style &= ~WS_CAPTION;
}
void __fastcall TForm1::WMNCHitTest(TMessage &Msg)
{
if (GetAsyncKeyState(VK_LBUTTON)<)
Msg.Result = HTCAPTION;
else
Msg.Result = HTCLIENT;
} /*
获取进程句柄后如何和窗口句柄相联系?
按钮按下调用函数CreateProcess(strFileName,NULL,NULL,NULL,FALSE,0,NULL,&StartupInfo,&ProcessInfo);
*/
//ProcessInfo是一个全局变量,据此可获取进程句柄,进程ID,线程ID等 /*
进程启动完毕,然后调用函数EnumWindows(EnumWindowsProc,0)
*/
//EnumWindowsProc是回调函数 /*
回调函数EnumWindowsProc为:
*/
BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lparam)
{
CString strPrompt;
DWORD ProcId;
DWORD ThreadId;
ThreadId=GetWindowThreadProcessId(hwnd,&ProcId)
if(ProcId==ProcessInfo.dwProcessId)
{
HWND targetWin;
targetWin=hwnd;
while(true)
{
HWND hTemp;
hTemp=GetParent(targetWin);
if(hTemp==NULL)
break;
else
targetWin=hTemp;
}
char szTemp[];
sprintf(szTemp,"%x",ProcId);
CString strTemp=szTemp;
GetWindowText(targetWin,strTemp.GetBuffer(),);
return FALSE;
}
else
return true;
} /*
最小化和恢复程序的方法
1)
*/
// To minimize, pass SC_MINIMIZE as the WPARAM
SendMessage(Application->Handle, WM_SYSCOMMAND, SC_MINIMIZE, );
// To restore, pass SC_RESTORE as the WPARAM
SendMessage(Application->Handle, WM_SYSCOMMAND, SC_RESTORE, );
)
// To minimize, pass SW_MINIMIZE to ShowWindow
ShowWindow(Application->Handle, SW_MINIMIZE);
// To restore, pass SW_RESTORE to ShowWindow
ShowWindow(Application->Handle, SW_RESTORE);
)
// To minimize the app, call Minimize
Application->Minimize();
// To restore the app, call Restore
Application->Restore(); /*
个人看法,第一组方法最为灵活,可能用处比较的大,如果网友象再最小化窗口是搞出一些动画效果,那么用第二组函数,第三组没有什么特别的地方。
关闭外部应用程序
先利用FindWindow函数找出要关闭的应用程序的主窗口名字,然后发送一个消息即可。
实例如下:
*/
HWnd HWndCalculator;
HWndCalculator = Winprocs->FindWindow(nil, "计算器"); // close the exist Calculator
if (HWndCalculator)
SendMessage(HWndCalculator, WM_CLOSE, , );

C++ Builder技巧集锦的更多相关文章

  1. 最有用的Linux命令行使用技巧集锦

    最近在Quora上看到一个问答题目,关于在高效率Linux用户节省时间Tips.将该题目的回答进行学习总结,加上自己的一些经验,记录如下,方便自己和大家参考. 下面介绍的都是一些命令行工具,这些工具在 ...

  2. Unity 游戏开发技巧集锦之使用cookie类型的纹理模拟云层的移动

    Unity 游戏开发技巧集锦之使用cookie类型的纹理模拟云层的移动 使用cookie类型的纹理模拟云层的移动 现实生活中,当阳光直射大地,而天空中又有很多云时,云层的影子总是会投射在大地上,风吹着 ...

  3. Unity 游戏开发技巧集锦之创建透明的材质

    Unity 游戏开发技巧集锦之创建透明的材质 Unity创建透明的材质 生活中不乏透明或者半透明的事物.例如,擦的十分干净的玻璃,看起来就是透明的:一些塑料卡片,看起来就是半透明的,如图3-23所示. ...

  4. Unity 游戏开发技巧集锦之创建部分光滑部分粗糙的材质

    Unity 游戏开发技巧集锦之创建部分光滑部分粗糙的材质 创建部分光滑部分粗糙的材质 生活中,有类物体的表面既有光滑的部分,又有粗糙的部分,例如丽江的石板路,如图3-17所示,石板的表面本来是粗糙的, ...

  5. Unity 游戏开发技巧集锦之材质的应用的创建反射材质

    Unity 游戏开发技巧集锦之材质的应用的创建反射材质 Unity中材质的应用 游戏中,大多数材质的应用都离不开纹理,而纹理本身是图片.所以,在学习本章时,最好在电脑上安装一个可以编辑图片的功能强大的 ...

  6. Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果

    Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果 使用忍者飞镖创建粒子效果 游戏中,诸如烟.火.水滴.落叶等粒子效果,都可以使用粒子系统(particle system)来实现.例如,<明 ...

  7. Unity 游戏开发技巧集锦之制作一个望远镜与查看器摄像机

    Unity 游戏开发技巧集锦之制作一个望远镜与查看器摄像机 Unity中制作一个望远镜 本节制作的望远镜,在鼠标左键按下时,看到的视图会变大:当不再按下的时候,会慢慢缩小成原来的视图.游戏中时常出现的 ...

  8. JMeter技巧集锦

    收藏些介绍JMeter使用知识的文章 1.JMeter技巧集锦 http://www.javaworld.com/javaworld/jw-07-2005/jw-0711-jmeter.html (网 ...

  9. LoadRunner小技巧集锦

    preftest 性能测试工作室,专注于性能测试技术研究(www.AutomationQA.com) LoadRunner小技巧集锦 1.录制脚本中包含中文,出现乱码怎么办? 把录制选项中的Suppo ...

随机推荐

  1. HDU 2176 取(m堆)石子游戏(Nim)

    取(m堆)石子游戏 题意: Problem Description m堆石子,两人轮流取.只能在1堆中取.取完者胜.先取者负输出No.先取者胜输出Yes,然后输出怎样取子.例如5堆 5,7,8,9,1 ...

  2. 张恭庆编《泛函分析讲义》第二章第5节 共轭空间 $\bullet$ 弱收敛 $\bullet$ 自反空间习题解答

    1.$\ell^p\ (1\leq p<\infty)$ 的对偶 求证: $\dps{\sex{\ell^p}^*=\ell^q\quad\sex{1\leq p<\infty,\ \fr ...

  3. [物理学与PDEs]第4章习题参考解答

    [物理学与PDEs]第4章习题1 反应力学方程组形式的化约 - 动量方程与未燃流体质量平衡方程 [物理学与PDEs]第4章习题2 反应力学方程组形式的化约 - 能量守恒方程 [物理学与PDEs]第4章 ...

  4. 别去研究C++

    转载 YH,今天早晨起来.回想昨天,虽然吐槽了 C++ 的各种问题,但给别人打工,还是要靠 C++ 干活吃饭.我对待 C++ 的态度和云风不同,虽然他所说的 C++ 技术的事情我都懂都理解,而我感受到 ...

  5. 转-Android微信支付

    http://blog.fangjie.info/android微信支付/ Android微信支付 2014-08-09 一.使用微信官方的提供的demo里的appid等 1.微信接口上手指南:(从“ ...

  6. JAVA 界面 - 记事本

    代码: import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Jiemian10 extends ...

  7. 【jQuery】关于选择器中的 :first 、 :first-child 、 :first-of-type

    [:first] <!DOCTYPE html><html lang="zh-CN"><head>    <title>test&l ...

  8. mac下使用github

    提起github相信大家都不会陌生,在这里就不再赘述了.作为开源代码库以及版本控制系统,使用好了确实会非常受益,再说的势利点,你找工作时给面试官说你经常维护自己的技术博客和github,相信你给他的印 ...

  9. fatal error C1853: '*.pch' is not a precompiled header file created with this compile

    在菜单下选择Build--->点击Rebuild All,如果不起作用,你可以先把Debug或者Release中的文件删除,然后再试.

  10. Intellisense for Xrm.Page in CRM 2011

    Intellisense for Xrm.Page in CRM 2011 In CRM 2011 javascripts for crm forms can be stored externally ...