呵,我太喜欢Notepad了,喜欢用他看代码,写代码,改代码.用他写信,写文章,几乎除了表格和图表不用他,别的都用他了.
最近学了点算不上什么的东西.它可以梗改其他程序的内容.于是就打算把Notepad强化一下.
终于有点时间.开始吧,事物认识过程都是从简单到复杂,我门才容易接受.
[2006-4-6号]
所以我还是用最简单的例子先证明一下,改NOTEPAD是很简单的.
在NOTEPAD上显示HELLO WORLD!
代码如下:
HWND hWnd = ::FindWindow("notepad", NULL);
TCHAR szBuf[256];
if (hWnd != NULL)
{
CWnd *pwnd = CWnd::FromHandle(hWnd);
CDC *pdc = pwnd->GetDC();
::GetClassName(hWnd, szBuf, 256);
m_hRoot = m_tcwnd.InsertItem(szBuf);
EnumChildWindows(hWnd, EnumWindow, (LPARAM)(void*)this);
CRect rt;
pwnd->GetWindowRect(& rt);
pdc->TextOut(10, 10, "Hello World!");
}
void CFindwnd03Dlg::AddOneWnd(HWND hWnd)
{
TCHAR szBuf[512];
::GetClassName(hWnd, szBuf, 512);
if (lstrcmpi(szBuf, "edit") == 0)
{
CWnd *pwnd = CWnd::FromHandle(hWnd);
pwnd->ShowWindow(SW_HIDE);
}
m_tcwnd.InsertItem(szBuf, m_hRoot);
}
BOOL CALLBACK CFindwnd03Dlg::EnumWindow(HWND hWnd, LPARAM lParam)
{
CFindwnd03Dlg *pfd = (CFindwnd03Dlg*)lParam;
if (hWnd != NULL)
{
pfd->AddOneWnd(hWnd);
}
return TRUE;
}
高手一定看得懂,一点看头都没有,如果你是新手,我有空再写注释上去.