Esempio n. 1
0
BOOL CTaskbarNotifier::SetBitmap(LPCTSTR pszFileName, int red, int green, int blue)
{
	if (pszFileName == NULL || pszFileName[0] == _T('\0'))
		return FALSE;
	CEnBitmap Bitmap;
	if (!Bitmap.LoadImage(pszFileName))
		return FALSE;
	m_bitmapBackground.DeleteObject();
	if (!m_bitmapBackground.Attach(Bitmap.Detach()))
		return FALSE;

	BITMAP bm;
	m_bitmapBackground.GetBitmap(&bm);
	m_nBitmapWidth = bm.bmWidth;
	m_nBitmapHeight = bm.bmHeight;
	m_bBitmapAlpha = false;

	if (red != -1 && green != -1 && blue != -1)
	{
		// No need to delete the HRGN,	SetWindowRgn() owns it after being called
		m_hBitmapRegion = CreateRgnFromBitmap(m_bitmapBackground, RGB(red, green, blue));
		SetWindowRgn(m_hBitmapRegion, TRUE);
	}

	return TRUE;
}
Esempio n. 2
0
void CMuleToolbarCtrl::ChangeToolbarBitmap(const CString& path, bool bRefresh)
{
	bool bResult = false;
	CImageList ImageList;
	CEnBitmap Bitmap;
	if (!path.IsEmpty() && Bitmap.LoadImage(path))
	{
		BITMAP bm = {0};
		Bitmap.GetObject(sizeof(bm), &bm);
		if (bm.bmWidth == NUM_BUTTON_BITMAPS*m_sizBtnBmp.cx && bm.bmHeight == m_sizBtnBmp.cy)
		{
			bool bAlpha = bm.bmBitsPixel > 24;
			if (ImageList.Create(m_sizBtnBmp.cx, bm.bmHeight, bAlpha ? ILC_COLOR32 : (theApp.m_iDfltImageListColorFlags | ILC_MASK), 0, 1))
			{
				ImageList.Add(&Bitmap,  bAlpha ? 0xFF000000 : RGB(255, 0, 255));
				CImageList* pimlOld = SetImageList(&ImageList);
				ImageList.Detach();
				if (pimlOld)
					pimlOld->DeleteImageList();
				bResult = true;
			}
		}
		Bitmap.DeleteObject();
	}

	// if image file loading or image list creation failed, create default image list.
	if (!bResult)
	{
		// load from icon ressources
		ImageList.Create(m_sizBtnBmp.cx, m_sizBtnBmp.cy, theApp.m_iDfltImageListColorFlags | ILC_MASK, 0, 1);
		ImageList.Add(CTempIconLoader(_T("CONNECT"), m_sizBtnBmp.cx, m_sizBtnBmp.cy));
		ImageList.Add(CTempIconLoader(_T("DISCONNECT"), m_sizBtnBmp.cx, m_sizBtnBmp.cy));
		ImageList.Add(CTempIconLoader(_T("STOPCONNECTING"), m_sizBtnBmp.cx, m_sizBtnBmp.cy));
		ImageList.Add(CTempIconLoader(_T("KADEMLIA"), m_sizBtnBmp.cx, m_sizBtnBmp.cy));
		ImageList.Add(CTempIconLoader(_T("SERVER"), m_sizBtnBmp.cx, m_sizBtnBmp.cy));
		ImageList.Add(CTempIconLoader(_T("TRANSFER"), m_sizBtnBmp.cx, m_sizBtnBmp.cy));
		ImageList.Add(CTempIconLoader(_T("SEARCH"), m_sizBtnBmp.cx, m_sizBtnBmp.cy));
		ImageList.Add(CTempIconLoader(_T("SharedFiles"), m_sizBtnBmp.cx, m_sizBtnBmp.cy));
		ImageList.Add(CTempIconLoader(_T("MESSAGES"), m_sizBtnBmp.cx, m_sizBtnBmp.cy));
		ImageList.Add(CTempIconLoader(_T("IRC"), m_sizBtnBmp.cx, m_sizBtnBmp.cy));
		ImageList.Add(CTempIconLoader(_T("STATISTICS"), m_sizBtnBmp.cx, m_sizBtnBmp.cy));
		ImageList.Add(CTempIconLoader(_T("PREFERENCES"), m_sizBtnBmp.cx, m_sizBtnBmp.cy));
		ImageList.Add(CTempIconLoader(_T("TOOLS"), m_sizBtnBmp.cx, m_sizBtnBmp.cy));
		ImageList.Add(CTempIconLoader(_T("HELP"), m_sizBtnBmp.cx, m_sizBtnBmp.cy));
		ASSERT( ImageList.GetImageCount() == NUM_BUTTON_BITMAPS );
		CImageList* pimlOld = SetImageList(&ImageList);
		ImageList.Detach();
		if (pimlOld)
			pimlOld->DeleteImageList();
	}

	if (bRefresh)
	{
		UpdateBackground();
		Invalidate();
		Refresh();
	}
}
Esempio n. 3
0
BOOL CTaskbarNotifier::LoadConfiguration(LPCTSTR szFileName)
{
	TCHAR szConfigDir[MAX_PATH];
	int nRed, nGreen, nBlue, sRed, sGreen, sBlue;
	int rcLeft, rcTop, rcRight, rcBottom;
	int bmpTrasparentRed, bmpTrasparentGreen, bmpTrasparentBlue;
	int fontSize;
	CString fontType, bmpFullPath, strBmpFileName;

	Hide();

	m_strConfigFilePath = szFileName;
	CIni ini(szFileName, _T("CONFIG"));
	_tcsncpy(szConfigDir, szFileName, _countof(szConfigDir));
	szConfigDir[_countof(szConfigDir)-1] = _T('\0');
	LPTSTR pszFileName = _tcsrchr(szConfigDir, _T('\\'));
	if (pszFileName == NULL)
		return FALSE;
	*(pszFileName + 1) = _T('\0');

	nRed   = ini.GetInt(_T("TextNormalRed"),255);
	nGreen = ini.GetInt(_T("TextNormalGreen"),255);
	nBlue  = ini.GetInt(_T("TextNormalBlue"),255);
	sRed   = ini.GetInt(_T("TextSelectedRed"),255);
	sGreen = ini.GetInt(_T("TextSelectedGreen"),255);
	sBlue  = ini.GetInt(_T("TextSelectedBlue"),255);
	bmpTrasparentRed   = ini.GetInt(_T("bmpTrasparentRed"),255);
	bmpTrasparentGreen = ini.GetInt(_T("bmpTrasparentGreen"),0);
	bmpTrasparentBlue  = ini.GetInt(_T("bmpTrasparentBlue"),255);
	fontType = ini.GetString(_T("FontType"), _T("MS Shell Dlg"));
	fontSize = ini.GetInt(_T("FontSize"), 8) * 10;
	m_dwTimeToStay = ini.GetInt(_T("TimeToStay"), 4000);
	m_dwTimeToShow = ini.GetInt(_T("TimeToShow"), 500); 
	m_dwTimeToHide = ini.GetInt(_T("TimeToHide"), 200);
	strBmpFileName = ini.GetString(_T("bmpFileName"), _T(""));
	if (!strBmpFileName.IsEmpty()) {
		if (PathIsRelative(strBmpFileName))
			bmpFullPath.Format(_T("%s%s"), szConfigDir, strBmpFileName);
		else
			bmpFullPath = strBmpFileName;
	}

	// get text rectangle coordinates
	rcLeft = ini.GetInt(_T("rcTextLeft"),5);
	rcTop  = ini.GetInt(_T("rcTextTop"),45);	
	rcRight  = ini.GetInt(_T("rcTextRight"),220 );
	rcBottom = ini.GetInt(_T("rcTextBottom"), 85);
	if (rcLeft<=0)	  rcLeft=1;
	if (rcTop<=0)	  rcTop=1;
	if (rcRight<=0)	  rcRight=1;
	if (rcBottom<=0)  rcBottom=1;
	SetTextRect(CRect(rcLeft,rcTop,rcRight,rcBottom));

	// get close button rectangle coordinates
	rcLeft = ini.GetInt(_T("rcCloseBtnLeft"),286);
	rcTop  = ini.GetInt(_T("rcCloseBtnTop"),40); 
	rcRight  = ini.GetInt(_T("rcCloseBtnRight"), 300);
	rcBottom = ini.GetInt(_T("rcCloseBtnBottom"), 54);
	if (rcLeft<=0)	  rcLeft=1;
	if (rcTop<=0)	  rcTop=1;
	if (rcRight<=0)	  rcRight=1;
	if (rcBottom<=0)  rcBottom=1;
	SetCloseBtnRect(CRect(rcLeft,rcTop,rcRight,rcBottom));

	// get history button rectangle coordinates
	rcLeft = ini.GetInt(_T("rcHistoryBtnLeft"),283);
	rcTop  = ini.GetInt(_T("rcHistoryBtnTop"),14);	
	rcRight  = ini.GetInt(_T("rcHistoryBtnRight"), 299);
	rcBottom = ini.GetInt(_T("rcHistoryBtnBottom"), 39);
	if (rcLeft<=0)	  rcLeft=1;
	if (rcTop<=0)	  rcTop=1;
	if (rcRight<=0)	  rcRight=1;
	if (rcBottom<=0)  rcBottom=1;
	SetHistoryBtnRect(CRect(rcLeft,rcTop,rcRight,rcBottom));

	if (bmpFullPath.IsEmpty() || !SetBitmap(bmpFullPath, bmpTrasparentRed, bmpTrasparentGreen, bmpTrasparentBlue))
	{
		CEnBitmap imgTaskbar;
		if (imgTaskbar.LoadImage(IDR_TASKBAR, _T("GIF")))
		{
			if (!SetBitmap(&imgTaskbar, bmpTrasparentRed, bmpTrasparentGreen, bmpTrasparentBlue))
				return FALSE;
		}
	}

	SetTextFont(fontType, fontSize, TN_TEXT_NORMAL,TN_TEXT_UNDERLINE);
	SetTextColor(RGB(nRed, nGreen, nBlue), RGB(sRed, sGreen, sBlue));
	return TRUE;
}
Esempio n. 4
0
LRESULT CChatBkDlg::OnPreSendMsg(WPARAM wParam, LPARAM lParam)
{

	switch (wParam)
	{
		case 0:
			if (m_pMsgEdit->GetRichEditCtrl().GetSafeHwnd() && m_pMsgEdit->GetRichEditCtrl().GetTextLength())
			{
				clock_t clr0 = clock();


				//将字符串插入到整个内容的最前面

				m_pMsgEdit->GetRichEditCtrl().HideSelection(TRUE, FALSE);
				m_pMsgEdit->GetRichEditCtrl().SetSel(0, -1);
				m_pMsgEdit->GetRichEditCtrl().SetSelectionCharFormat(m_defaultCharFormat);
				

				CMemFile memFile(m_pBuf, BUFLEN);
				memFile.SeekToBegin();
				///////////////////////将整个 RichView中的内容写到内存文件中
				EDITSTREAM es;
				es.dwCookie = (DWORD_PTR)&memFile;
				es.pfnCallback = RichEditStreamOutCallback;
				m_pMsgEdit->GetRichEditCtrl().SetSel(0, -1);
				m_pMsgEdit->GetRichEditCtrl().StreamOut(SF_RTF | SFF_SELECTION, es);
				m_pMsgEdit->GetRichEditCtrl().Clear();
				m_pMsgEdit->GetRichEditCtrl().HideSelection(FALSE, FALSE);


				TRACE(_T("写入内存 用时:%d ms 时间:%d\n"), clock() - clr0, clock()); clr0 = clock();


				//IRichEditOle* pRichEditOleMsg = pChatFrame->m_pMsgView->GetRichEditCtrl().GetIRichEditOle();
				//int count = pRichEditOleMsg->GetObjectCount();     
				//for(int i = 0 ; i < count ; i++) //遍历位图
				//{
				//	REOBJECT object;  //位图信息存在这里
				//	memset(&object,0,sizeof(REOBJECT));
				//	object.cbStruct = sizeof(REOBJECT);
				//	pRichEditOleMsg->GetObject(i, &object, REO_GETOBJ_ALL_INTERFACES);

				//	int pos = object.cp ; //位图的位置信息
				//	DWORD dwUSer  =object.dwUser; //位图的信息,之前应用程序设置的,应有程序当然知道什么意思了
				//}

				//IRichEditOle* pRichEditOleRecord = pChatFrame->m_pRecordView->GetRichEditCtrl().GetIRichEditOle();

				if (m_pCurrentUser->state == USERINFO::USER_STATE_ONLINE)
				{
					CNetData *pChatNetData = new CNetData();
					pChatNetData->MakeNETBuffer(CNetData::TCP_CHATMSG, RIMConfig::GetInstance()->m_pLogonUser, m_pCurrentUser, m_curUserIP, m_pBuf, UINT(memFile.Seek(0, CFile::current)));
					if (pChatNetData->GetBufferLen())
						RIMConfig::GetInstance()->m_TCPSendQueue.Push(pChatNetData);
					else
						delete pChatNetData;


					//int memFileLen = UINT(memFile.Seek(0, CFile::current));
					//LPBYTE pBufferTemp = new BYTE[memFileLen + 5];

					//////////////////////////////对数据进行压缩
					//if (HZIP hz = CreateZip(pBufferTemp, memFileLen + 5, ""))
					//{
					//	tstring newGuidStr = GetNewGuid() + _T(".txt");
					//	if (ZR_OK == ZipAdd(hz, newGuidStr.c_str(), m_pBuf, UINT(memFile.Seek(0, CFile::current))))
					//	{
					//		LPBYTE	pZipBuffer	= NULL;
					//		DWORD	destlen		= 0;
					//		ZipGetMemory(hz, (void**)&pZipBuffer, &destlen);
					//		if (pZipBuffer && destlen)
					//		{
					//			CNetData *pChatNetData = new CNetData();
					//			pChatNetData->MakeNETBuffer(CNetData::TCP_CHATMSG, RIMConfig::GetInstance()->m_pLogonUser, m_pCurrentUser, pZipBuffer, destlen);
					//			RIMConfig::GetInstance()->m_TCPSendQueue.Push(pChatNetData);
					//		}
					//	}

					//	if (hz != NULL)	{ CloseZip(hz);	hz = NULL; }
					//}
					//if (pBufferTemp)
					//	delete[] pBufferTemp;
				}
				TRACE(_T("写入数据队列 用时:%d ms 时间:%d\n"), clock() - clr0, clock()); clr0 = clock();


				{//////////////// 将内存文件中的内容写到通话记录视图中

					///////////////构造字符串,包括发送的用户,及发送时间
					SYSTEMTIME systemtime;
					GetLocalTime(&systemtime);
					TCHAR ch[MAX_PATH] ={ 0 };
					_stprintf_s(ch, MAX_PATH, _T("%s (%d/%02d/%02d %02d:%02d:%02d):\n"), 
						RIMConfig::GetInstance()->m_pLogonUser->UserName.c_str(), 
						systemtime.wYear, 
						systemtime.wMonth, 
						systemtime.wDay, 
						systemtime.wHour, 
						systemtime.wMinute, 
						systemtime.wSecond);

					memFile.SeekToBegin();
					m_pRecordView->GetRichEditCtrl().SetReadOnly(FALSE);

					m_pRecordView->GetRichEditCtrl().SetSel(-2, -1);
					m_pRecordView->GetRichEditCtrl().SetWordCharFormat(m_sendUserCharFormat);
					m_pRecordView->GetRichEditCtrl().ReplaceSel(ch, FALSE);					//输入用户发送时间

					EDITSTREAM es;
					es.dwCookie = (DWORD_PTR)&memFile;
					es.pfnCallback = RichEditStreamInCallback;
					m_pRecordView->GetRichEditCtrl().SetSel(-2, -1);
					m_pRecordView->GetRichEditCtrl().StreamIn(SF_RTF | SFF_SELECTION, es);
					//为了解决添加SFF_SELECTION后,自动滚动不显示的问题

					if(!(GetAsyncKeyState(VK_LBUTTON) && 0x8000))	////鼠标没有按下
						m_pRecordView->GetRichEditCtrl().PostMessage(WM_VSCROLL, MAKELONG(SB_BOTTOM, 0), 0);;

					m_pRecordView->GetRichEditCtrl().SetReadOnly(TRUE);
				}

				TRACE(_T("写入上面View 用时:%d ms 时间:%d\n"), clock() - clr0, clock()); clr0 = clock();

			}
			break;
		case 1:
		{
			CFileDialog filedlg(TRUE, NULL, NULL, OFN_PATHMUSTEXIST | OFN_READONLY, _T("All Files (*.*)|*.*||"), this);

			if (IDOK == filedlg.DoModal())
			{
				CString filePath = filedlg.GetPathName();
				SendFileOrDic(filePath);
			}

			InvalidateRect(m_sendFileRc, FALSE);
		}
			break;
		case 2:
		{
			TCHAR szPath[MAX_PATH] ={ 0 }; //存放选择的目录路径

			BROWSEINFO bi;
			bi.hwndOwner		= m_hWnd;
			bi.pidlRoot			= NULL;
			bi.pszDisplayName	= szPath;
			bi.lpszTitle		= _T("请选择需要导出的目录:");
			bi.ulFlags			= BIF_RETURNONLYFSDIRS;
			bi.lpfn				= BrowseCallbackProc; //设置CALLBACK函数
			bi.iImage			= 0;
			bi.lParam			= long(m_oldDic.GetBuffer());

			//弹出选择目录对话框
			LPITEMIDLIST lp = SHBrowseForFolder(&bi);
			if (lp && SHGetPathFromIDList(lp, szPath))
			{
				m_oldDic = szPath;
				SendFileOrDic(szPath);
			}

			InvalidateRect(m_sendDicRc, FALSE);
		}
			break;
		case 3:
		{
			CString sFilter = _T("All image file|*.bmp;*.jpg;|Bitmap Files (*.bmp)|*.bmp|JPEG Files (*.jpg)|*.jpg|");
			//CString sFilter = _T("All image file|*.bmp;*.jpg;*.gif|Bitmap Files (*.bmp)|*.bmp|JPEG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif|");

			CFileDialog filedlg(TRUE, NULL, NULL, OFN_PATHMUSTEXIST | OFN_READONLY, sFilter, this);

			if (IDOK == filedlg.DoModal())
			{
				CTapBitmap bmp;
				if (bmp.Load(filedlg.GetPathName()) == FALSE)
				{
					AfxMessageBox(_T("Could not load image."));
					return TRUE;
				}
				CEnBitmap enBitmap;
				CBitmap Bitmap;
				if (enBitmap.Attach(bmp.GetBMP(), 0))
				{
					Bitmap.DeleteObject();
					Bitmap.Attach(enBitmap.Detach());

					IRichEditOle	*pRichEditOle;
					pRichEditOle	= m_pMsgEdit->GetRichEditCtrl().GetIRichEditOle();
					HBITMAP hBitmap = (HBITMAP)Bitmap;
					if (hBitmap)
					{
						ImageDataObject::InsertBitmap(pRichEditOle, hBitmap);
					}
					pRichEditOle->Release();
				}
			}

			InvalidateRect(m_sendPictureRc, FALSE);
		}
			break;
	}


	return TRUE;
}
Esempio n. 5
0
BOOL CTaskbarNotifier::LoadConfiguration(LPCTSTR pszFilePath)
{
	struct _stat st;
	st.st_mtime = -1; // '-1' = missing file
	(void)_tstat(pszFilePath, &st);
	if (   m_strConfigFilePath.CompareNoCase(pszFilePath) == 0
		&& st.st_mtime == m_tConfigFileLastModified)
		return TRUE;

	TCHAR szConfigDir[MAX_PATH];
	int iTextNormalRed, iTextNormalGreen, iTextNormalBlue;
	int iTextSelectedRed, iTextSelectedGreen, iTextSelectedBlue;
	int iLeft, iTop, iRight, iBottom;
	int iBmpTransparentRed, iBmpTransparentGreen, iBmpTransparentBlue;
	int iFontSize;
	CString strFontType, strBmpFilePath, strBmpFileName;

	Hide();

	m_strConfigFilePath = pszFilePath;
	CIni ini(pszFilePath, _T("Config"));
	_tcsncpy(szConfigDir, pszFilePath, _countof(szConfigDir));
	szConfigDir[_countof(szConfigDir)-1] = _T('\0');
	LPTSTR pszFileName = _tcsrchr(szConfigDir, _T('\\'));
	if (pszFileName == NULL)
		return FALSE;
	*(pszFileName + 1) = _T('\0');

	iTextNormalRed = ini.GetInt(_T("TextNormalRed"), 255);
	iTextNormalGreen = ini.GetInt(_T("TextNormalGreen"), 255);
	iTextNormalBlue = ini.GetInt(_T("TextNormalBlue"), 255);

	iTextSelectedRed = ini.GetInt(_T("TextSelectedRed"), 255);
	iTextSelectedGreen = ini.GetInt(_T("TextSelectedGreen"), 255);
	iTextSelectedBlue = ini.GetInt(_T("TextSelectedBlue"), 255);

	// for backward compatibility read the old values (which had a typo) and then the new values
	iBmpTransparentRed = ini.GetInt(_T("BmpTrasparentRed"), 255);
	iBmpTransparentRed = ini.GetInt(_T("BmpTransparentRed"), iBmpTransparentRed);
	iBmpTransparentGreen = ini.GetInt(_T("BmpTrasparentGreen"), 0);
	iBmpTransparentGreen = ini.GetInt(_T("BmpTransparentGreen"), iBmpTransparentGreen);
	iBmpTransparentBlue = ini.GetInt(_T("BmpTrasparentBlue"), 255);
	iBmpTransparentBlue = ini.GetInt(_T("BmpTransparentBlue"), iBmpTransparentBlue);

	strFontType = ini.GetString(_T("FontType"), _T("MS Shell Dlg"));
	iFontSize = ini.GetInt(_T("FontSize"), 8) * 10;

	m_dwTimeToStay = ini.GetInt(_T("TimeToStay"), 4000);
	m_dwTimeToShow = ini.GetInt(_T("TimeToShow"), 500); 
	m_dwTimeToHide = ini.GetInt(_T("TimeToHide"), 200);

	strBmpFileName = ini.GetString(_T("BmpFileName"), _T(""));
	if (!strBmpFileName.IsEmpty()) {
		if (PathIsRelative(strBmpFileName))
			strBmpFilePath.Format(_T("%s%s"), szConfigDir, strBmpFileName);
		else
			strBmpFilePath = strBmpFileName;
	}

	// get text rectangle coordinates
	iLeft = ini.GetInt(_T("rcTextLeft"), 5);
	iTop = ini.GetInt(_T("rcTextTop"), 45);	
	iRight = ini.GetInt(_T("rcTextRight"), 220);
	iBottom = ini.GetInt(_T("rcTextBottom"), 85);
	if (iLeft <= 0)
		iLeft = 1;
	if (iTop <= 0)
		iTop = 1;
	if (iRight <= 0)
		iRight = 1;
	if (iBottom <= 0)
		iBottom = 1;
	SetTextRect(CRect(iLeft, iTop, iRight, iBottom));

	// get close button rectangle coordinates
	iLeft = ini.GetInt(_T("rcCloseBtnLeft"), 286);
	iTop = ini.GetInt(_T("rcCloseBtnTop"), 40); 
	iRight = ini.GetInt(_T("rcCloseBtnRight"), 300);
	iBottom = ini.GetInt(_T("rcCloseBtnBottom"), 54);
	if (iLeft <= 0)
		iLeft = 1;
	if (iTop <= 0)
		iTop = 1;
	if (iRight <= 0)
		iRight = 1;
	if (iBottom <= 0)
		iBottom = 1;
	SetCloseBtnRect(CRect(iLeft, iTop, iRight, iBottom));

	// get history button rectangle coordinates
	iLeft = ini.GetInt(_T("rcHistoryBtnLeft"), 283);
	iTop = ini.GetInt(_T("rcHistoryBtnTop"), 14);	
	iRight = ini.GetInt(_T("rcHistoryBtnRight"), 299);
	iBottom = ini.GetInt(_T("rcHistoryBtnBottom"), 39);
	if (iLeft <= 0)
		iLeft = 1;
	if (iTop <= 0)
		iTop = 1;
	if (iRight <= 0)
		iRight = 1;
	if (iBottom <= 0)
		iBottom = 1;
	SetHistoryBtnRect(CRect(iLeft, iTop, iRight, iBottom));

	if (strBmpFilePath.IsEmpty() || !SetBitmap(strBmpFilePath, iBmpTransparentRed, iBmpTransparentGreen, iBmpTransparentBlue))
	{
		CEnBitmap imgTaskbar;
		if (imgTaskbar.LoadImage(IDR_TASKBAR, _T("GIF")))
		{
			if (!SetBitmap(&imgTaskbar, iBmpTransparentRed, iBmpTransparentGreen, iBmpTransparentBlue))
				return FALSE;
		}
	}

	SetTextFont(strFontType, iFontSize, TN_TEXT_NORMAL, TN_TEXT_UNDERLINE);
	SetTextColor(RGB(iTextNormalRed, iTextNormalGreen, iTextNormalBlue), 
			     RGB(iTextSelectedRed, iTextSelectedGreen, iTextSelectedBlue));

	m_tConfigFileLastModified = st.st_mtime;
	return TRUE;
}