eVC下输出空心文字
void DrawHollowText( HDC hDC, RECT *pRect, LPCTSTR lpszString ){ // 开始画8个方向的轮廓,从左上角开始顺时针 SetBkMode( hDC, TRANSPARENT ); SetTextColor( hDC, 0x000000 ); // 黑色 // 左上角 --pRect->top; --pRect->left; DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE ); // 正上方 ++pRect->left; DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE ); // 右上角 ++pRect->left; DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE ); // 右 ++pRect->top; DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE ); // 右下角 ++pRect->top; DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE ); // 正下方 --pRect->left; DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE ); // 左下角 --pRect->left; DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE ); // 左 --pRect->top; DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE ); // 画中央的文字(白色) SetTextColor( hDC, 0xffffff ); ++pRect->left; DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE );}
说明:eVC下对于GDI的支持有限,所以只能根据DrawText的需要而使用矩形,而不是文字坐标。
9:54 |
添加评论
|
固定链接
|
引用通告 (0)
|
写入日志
|
Windows mobile
4月14日
EVC4.0发生CVT1102错误的解决方法
Compiling resources...
Linking...
CVTRES : fatal error CVT1102: out of memory; 39 bytes required
LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
这个错误CVTRES.exe的版本问题造成的,用Microsoft eMbedded C++ 4.0/Common/EVC/bin下的替换掉Microsoft eMbedded C++ 4.0/EVC/wce420/bin下的CVTRES.exe就好了.
9:34 |
添加评论
|
固定链接
|
引用通告 (0)
|
写入日志
|
Windows mobile
4月11日
InstallShield修改注册表
function SetupRegistry()
NUMBER nResult;
STRING szPath, szKeyName;
begin
RegDBSetDefaultRoot ( HKEY_CURRENT_USER );
szKeyName = "Software//ODBC//ODBC.INI//我的数据库";
if(RegDBKeyExist(szKeyName)<0) then
RegDBCreateKeyEx (szKeyName,"");
else
RegDBDeleteKey (szKeyName);
RegDBCreateKeyEx (szKeyName,"");
endif;
szKeyName = "Software//ODBC//ODBC.INI//ODBC Data Sources";
if(RegDBKeyExist(szKeyName)<0) then
RegDBCreateKeyEx (szKeyName,"");
endif;
RegDBSetKeyValueEx ( szKeyName, "我的数据库" , REGDB_STRING ,"Microsoft Access Driver (*.mdb)" , -1);
szPath = TARGETDIR^"student.mdb";
szKeyName = "Software//ODBC//ODBC.INI//我的数据库";
RegDBSetKeyValueEx ( szKeyName, "DBQ" , REGDB_STRING , szPath , -1);
RegDBSetKeyValueEx ( szKeyName, "Description" , REGDB_STRING , "用于VC++的数据源" , -1);
RegDBSetKeyValueEx ( szKeyName, "Driver" , REGDB_STRING , WINSYSDIR+"/odbcjt32.DLL" , -1);
RegDBSetKeyValueEx ( szKeyName, "DriverID" , REGDB_NUMBER , "25" , -1);
RegDBSetKeyValueEx ( szKeyName, "SafeTransactions" , REGDB_NUMBER ,"0" , -1);
RegDBSetKeyValueEx ( szKeyName, "UID" , REGDB_STRING ,"" , -1);
RegDBCreateKeyEx ("Software//ODBC//ODBC.INI//我的数据库
//Engines","");
RegDBCreateKeyEx ("Software//ODBC//ODBC.INI//我的数据库
//Engines//Jet","");
szKeyName = "Software//ODBC//ODBC.INI//我的数据库
//Engines//Jet";
RegDBSetKeyValueEx ( szKeyName, "Driver" , REGDB_STRING , WINSYSDIR+"/odbcjt32.DLL" , -1);
RegDBSetKeyValueEx ( szKeyName, "ImplicitCommitSync" , REGDB_STRING , "" , -1);
RegDBSetKeyValueEx ( szKeyName, "Threads" , REGDB_NUMBER , "3" , -1);
RegDBSetKeyValueEx ( szKeyName, "UserCommitSync" , REGDB_STRING , "Yes" , -1);
end;
10:31 |
添加评论
|
固定链接
|
引用通告 (0)
|
写入日志
|
计算机与 Internet
4月4日
绘制透明图片
void DrawTransparent(CDC* pDC, UINT nResId, int x, int y, COLORREF crColour)
{
COLORREF crOldBack=pDC->SetBkColor(RGB(255,255,255));
COLORREF crOldText=pDC->SetTextColor(RGB(0,0,0));
CDC dcImage, dcMask;
CBitmap bmp;
bmp.LoadBitmap(nResId);
BITMAP bm;
bmp.GetBitmap(&bm);
int nWidth=bm.bmWidth, nHeight=bm.bmHeight;
//为图像及mask各创建一个DC
dcImage.CreateCompatibleDC(pDC);
dcMask.CreateCompatibleDC(pDC);
//把图像装入image DC
CBitmap* pOldBitmapImage=dcImage.SelectObject(&bmp);
//为“掩码”位图创建一个单色bitmap
CBitmap bitmapMask;
bitmapMask.CreateBitmap(nWidth, nHeight, 1, 1, NULL); //把mask位图装入mask DC
CBitmap* pOldBitmapMask = dcMask.SelectObject(&bitmapMask); //用透明色创建“掩码”位图
dcImage.SetBkColor(crColour);//crColor是位图中的透明色
dcMask.BitBlt(0, 0, nWidth, nHeight, &dcImage, 0, 0, SRCCOPY);//分3步进行实际的绘制
pDC->BitBlt(x, y, nWidth, nHeight, &dcImage, 0, 0, SRCINVERT);
pDC->BitBlt(x, y, nWidth, nHeight, &dcMask, 0, 0, SRCAND);
pDC->BitBlt(x, y, nWidth, nHeight, &dcImage, 0, 0, SRCINVERT); //恢复原先设置
dcImage.SelectObject(pOldBitmapImage);
dcMask.SelectObject(pOldBitmapMask);
pDC->SetBkColor(crOldBack);
pDC->SetTextColor(crOldText);
}
14:33 |
添加评论
|
固定链接
|
引用通告 (0)
|
写入日志
|
VC
动态加载BMP图片
HBITMAP m_bitmap;
m_bitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(),
"welcome.bmp",
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE );