LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect; static HWND hwndLabel[2] , hwndBt[3] , hwndEdit[3] , hwndList;
static char *szLabelText[] = {"服务器IP" , "单词" } ,
*szBtText[] = {"连接" , "查询" , "简明意思"};
int i; static HBRUSH hBrushStatic;
HFONT ghStaticFont;
HINSTANCE hInstance; char ServerAddr[20] , Word[80] , RecBuf[80];
switch( message )
{
case WM_CREATE:
hInstance = (HINSTANCE) GetWindowLong(hwnd , GWL_HINSTANCE);
for(i = 0 ; i < 2 ; i++)
{ hwndLabel[i] = CreateWindow(TEXT("static"),szLabelText[i],
WS_CHILD | WS_VISIBLE | SS_CENTER ,
10 , 10 + 30 * i , 70 , 22 ,
hwnd , (HMENU)i,
hInstance , NULL); if(i == 1)
hwndBt[i] = CreateWindow(TEXT("button") , szBtText[i] ,
WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON ,
300 , 10 + 30 * i , 70 , 23 ,
hwnd , (HMENU)(i+1) ,
hInstance , NULL); hwndEdit[i] = CreateWindow(TEXT("edit") , NULL ,
WS_CHILD | WS_BORDER | ES_LEFT |WS_VISIBLE,
87 , 10 + 30 * i , 190 , 22 ,
hwnd , (HMENU)1 ,
hInstance , NULL);
ghStaticFont = (HFONT)GetStockObject(SYSTEM_FIXED_FONT);
SendMessage(hwndLabel[i],WM_SETFONT,(WPARAM)ghStaticFont,MAKELPARAM(TRUE,0));
SendMessage(hwndBt[i],WM_SETFONT,(WPARAM)ghStaticFont,MAKELPARAM(TRUE,0));
} hwndBt[2] = CreateWindow(TEXT("button") , szBtText[2] ,
WS_CHILD | WS_VISIBLE | BS_GROUPBOX ,
10 , 70 , 400 , 200 ,
hwnd , (HMENU)i ,
hInstance , NULL); hwndList = CreateWindow(TEXT("edit") , NULL ,
WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_READONLY,
15 , 100 , 350 , 160 ,
hwnd , (HMENU)i ,
hInstance , NULL); hBrushStatic = CreateSolidBrush(GetSysColor(COLOR_BTNHIGHLIGHT)); ghStaticFont = (HFONT)GetStockObject(SYSTEM_FIXED_FONT);
SendMessage(hwndBt[2] , WM_SETFONT , (WPARAM)ghStaticFont , MAKELPARAM(TRUE , 0));
SendMessage(hwndList , WM_SETFONT , (WPARAM)ghStaticFont , MAKELPARAM(TRUE , 0)); return 0; case WM_SIZE:
return 0;
case WM_SETFOCUS:
SetFocus(hwndEdit[0]);
return 0; case WM_MOUSEMOVE:
return 0;
case WM_COMMAND:
switch(wParam)
{
case ID_CONNECT:
// GetWindowText(hwndEdit[0] , ServerAddr , 20);
// ConnectToServer(ServerAddr , &ClientSocket);
break;
case ID_SEARCH:
GetWindowText(hwndEdit[0] , ServerAddr , 20);
if(!CheckAddr(ServerAddr))
{
MessageBox(hwnd , "IP地址格式错误" , "错误" , MB_OK);
return 0;
}
if(!ConnectToServer(ServerAddr , &ClientSocket))
{
MessageBox(hwnd , "服务器连接失败" , "失败" , MB_OK);
return 0;
}
GetWindowText(hwndEdit[1] , Word , 80);
Trim(Word);
strcat(Word,"\r\n");
if(!SeachWord(ClientSocket , Word , RecBuf))
{
MessageBox(hwnd , "单词查找失败" , "失败" , MB_OK);
return 0;
} SetWindowText(hwndList , RecBuf);
break;
default :
break;
}
return 0; case WM_PAINT:
hdc = BeginPaint( hwnd, &ps ); GetClientRect( hwnd, &rect );
// DrawText( hdc, TEXT("Hello,Windows 98!"), -1, &rect,
// DT_SINGLELINE | DT_CENTER | DT_VCENTER ); EndPaint( hwnd, &ps ); return 0; case WM_CTLCOLORSTATIC:
SetTextColor((HDC)wParam , RGB(0 , 0 , 0));
SetBkColor((HDC)wParam , GetSysColor(COLOR_BTNHIGHLIGHT));
return (LRESULT)hBrushStatic; case WM_DESTROY:
PostQuitMessage( 0 );
return 0;
}
return DefWindowProc( hwnd, message, wParam, lParam );
}
有关SDK的知识都告诉我,还有SDK\MFC\API这之间到底是什么关系??
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect; static HWND hwndLabel[2] , hwndBt[3] , hwndEdit[3] , hwndList;
static char *szLabelText[] = {"服务器IP" , "单词" } ,
*szBtText[] = {"连接" , "查询" , "简明意思"};
int i; static HBRUSH hBrushStatic;
HFONT ghStaticFont;
HINSTANCE hInstance; char ServerAddr[20] , Word[80] , RecBuf[80];
switch( message )
{
case WM_CREATE:
hInstance = (HINSTANCE) GetWindowLong(hwnd , GWL_HINSTANCE);
for(i = 0 ; i < 2 ; i++)
{ hwndLabel[i] = CreateWindow(TEXT("static"),szLabelText[i],
WS_CHILD | WS_VISIBLE | SS_CENTER ,
10 , 10 + 30 * i , 70 , 22 ,
hwnd , (HMENU)i,
hInstance , NULL); if(i == 1)
hwndBt[i] = CreateWindow(TEXT("button") , szBtText[i] ,
WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON ,
300 , 10 + 30 * i , 70 , 23 ,
hwnd , (HMENU)(i+1) ,
hInstance , NULL); hwndEdit[i] = CreateWindow(TEXT("edit") , NULL ,
WS_CHILD | WS_BORDER | ES_LEFT |WS_VISIBLE,
87 , 10 + 30 * i , 190 , 22 ,
hwnd , (HMENU)1 ,
hInstance , NULL);
ghStaticFont = (HFONT)GetStockObject(SYSTEM_FIXED_FONT);
SendMessage(hwndLabel[i],WM_SETFONT,(WPARAM)ghStaticFont,MAKELPARAM(TRUE,0));
SendMessage(hwndBt[i],WM_SETFONT,(WPARAM)ghStaticFont,MAKELPARAM(TRUE,0));
} hwndBt[2] = CreateWindow(TEXT("button") , szBtText[2] ,
WS_CHILD | WS_VISIBLE | BS_GROUPBOX ,
10 , 70 , 400 , 200 ,
hwnd , (HMENU)i ,
hInstance , NULL); hwndList = CreateWindow(TEXT("edit") , NULL ,
WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_READONLY,
15 , 100 , 350 , 160 ,
hwnd , (HMENU)i ,
hInstance , NULL); hBrushStatic = CreateSolidBrush(GetSysColor(COLOR_BTNHIGHLIGHT)); ghStaticFont = (HFONT)GetStockObject(SYSTEM_FIXED_FONT);
SendMessage(hwndBt[2] , WM_SETFONT , (WPARAM)ghStaticFont , MAKELPARAM(TRUE , 0));
SendMessage(hwndList , WM_SETFONT , (WPARAM)ghStaticFont , MAKELPARAM(TRUE , 0)); return 0; case WM_SIZE:
return 0;
case WM_SETFOCUS:
SetFocus(hwndEdit[0]);
return 0; case WM_MOUSEMOVE:
return 0;
case WM_COMMAND:
switch(wParam)
{
case ID_CONNECT:
// GetWindowText(hwndEdit[0] , ServerAddr , 20);
// ConnectToServer(ServerAddr , &ClientSocket);
break;
case ID_SEARCH:
GetWindowText(hwndEdit[0] , ServerAddr , 20);
if(!CheckAddr(ServerAddr))
{
MessageBox(hwnd , "IP地址格式错误" , "错误" , MB_OK);
return 0;
}
if(!ConnectToServer(ServerAddr , &ClientSocket))
{
MessageBox(hwnd , "服务器连接失败" , "失败" , MB_OK);
return 0;
}
GetWindowText(hwndEdit[1] , Word , 80);
Trim(Word);
strcat(Word,"\r\n");
if(!SeachWord(ClientSocket , Word , RecBuf))
{
MessageBox(hwnd , "单词查找失败" , "失败" , MB_OK);
return 0;
} SetWindowText(hwndList , RecBuf);
break;
default :
break;
}
return 0; case WM_PAINT:
hdc = BeginPaint( hwnd, &ps ); GetClientRect( hwnd, &rect );
// DrawText( hdc, TEXT("Hello,Windows 98!"), -1, &rect,
// DT_SINGLELINE | DT_CENTER | DT_VCENTER ); EndPaint( hwnd, &ps ); return 0; case WM_CTLCOLORSTATIC:
SetTextColor((HDC)wParam , RGB(0 , 0 , 0));
SetBkColor((HDC)wParam , GetSysColor(COLOR_BTNHIGHLIGHT));
return (LRESULT)hBrushStatic; case WM_DESTROY:
PostQuitMessage( 0 );
return 0;
}
return DefWindowProc( hwnd, message, wParam, lParam );
}
有关SDK的知识都告诉我,还有SDK\MFC\API这之间到底是什么关系??
解决方案 »
- UTF8格式的网页如何解析?
- 我也不知道这个错误怎么说,帮我看下吧!
- 怎么在没有窗口的程序中创建一个托盘图标
- 50分小问题,自己写了一个菜单类,想把MDI mainfrm框架,view窗口中的菜单替换掉,怎么替换啊?
- 在线求助-访问冲突,解决立即结贴。(3)
- 要能在线播放,对服务器有什么要求吗?
- 哪里有全文检索算法啊。。。
- 由CStatic派生的类,与控件绑定后,在派生类中收不到控件创建WM_CREATE消息,那它靠什么创建??
- VC++中,窗口的最大化,最小化和关闭,分别触发什么事件,如何判断这些事件是否产生
- 如何通过编辑框向组合框添加内容()
- 晕...气愤...
- 怎样将文件夹图标文件(folder.ico),导入到工程中,并设置ID 为 IDI_FOLDER??
微软mfc是windows api的c++封装,不过我看windows操作系统上的微软开发的很多上层应用,都是用sdk开发的,他们公司反而不用mfc.
api就是os提供的系统接口
不好意思,我刚接触sdk,问题比较多,我会加分做为补偿的
比较初级,不好意思