单词小助手V1.0

单词小助手是我学VC数据库开发的一个练手的软件,主要采用ADO+ACCESS编程结构。由于学VC不久,所以这个小软件虽然功能不太多,但是也花了我几天的时间,做这个软件其实是自己突发奇想,自己在背单词的时候,总是写在本子上,一次一次地背,但是时间久了,不但单词忘了,就连背单词地本子也找不到了。:( 索性写了这个小软件。 该软件的主要功能,就是帮助你记忆单词。将自己不认识的单词加入,然后背诵,对背诵过的单词进行标记,随着标记次数的增多,相信你的单词量也不知不觉增加了。这是一个测试版本,可能很多功能并不完善,我以后还会对这个软件进行更多的改进。争取不断退出2.0,3.0版本呵呵……

程序预览图:

程序主要用到的核心技术和代码:

1.Splash窗口的逐渐淡出效果 采用到NT系统一个未公开的API。 在头文件加入#define WS_EX_LAYERED 0x00080000 定义API函数结构: typedef BOOL (WINAPI *lpfn)(HWND hWnd,COLORREF cr,BYTE bAlpha,DWORD dwFlags); lpfn g_pSetLayeredWindowAttributes; 从DLL取出该API函数地址: HMODULE hUser32 = GetModuleHandle(_T(“USER32.DLL”)); g_pSetLayeredWindowAttributes = (lpfn)GetProcAddress(hUser32,”SetLayeredWindowAttributes”); 调整目标窗口属性: ::SetWindowLong(hWindow,GWL_EXSTYLE,GetWindowLong(hWindow,GWL_EXSTYLE)^WS_EX_LAYERED); 调用函数,实现透明效果: g_pSetLayeredWindowAttributes(hWindow,5,50,2); ::RedrawWindow(hWindow, NULL, NULL,RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN); 逐渐淡出效果,是采用了WM_TIMER消息,在OnTimer响应函数中,采用一个变量不断自减,和不断调用以上函数,来实现Splash窗口逐渐淡出的效果。

2.主程序背景窗口实现: 背景是一张我自己绘制的BMP图片,然后将其导入到工程中。 在窗口的OnPaint()函数中,加入如下代码: CPaintDC dc(this); CRect rect; GetClientRect(▭);//得到窗体的大小 CDC dcMem; dcMem.CreateCompatibleDC(&dc;); CBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP1);//加载背景图片 BITMAP bitMap; bmpBackground.GetBitmap(&bitMap;); CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground;); dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem;,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY); 将背景图片画在窗口上。如果需要较快的速度,可以采用BitBlt函数。

3.按钮主要是采用了CButtonST类,这个类的功能很丰富,实现也很简单,在这里就不重复了。可以方便地在网上找到代码和示例。

该程序源代码下载:

点击下载此文件

WIN2000/XP程序下载:

点击下载此文件

WIN98程序下载:

点击下载此文件

支持原创技术分享,据说打赏我的人,都找到了女朋友!