写了一个服务器程序,用了TextOut客户区中不能显示文本(如“my service..”),
原因不明(可能是不识别作为串尾标志的内容为零的字节)。换了CreateWindow(“text"...)勉强能达到了想要的效果。
当后台处理完要显示另一段时,只能再CreateWindow。请问各位专家,有更优的解决方案吗?
原因不明(可能是不识别作为串尾标志的内容为零的字节)。换了CreateWindow(“text"...)勉强能达到了想要的效果。
当后台处理完要显示另一段时,只能再CreateWindow。请问各位专家,有更优的解决方案吗?
检查你取得的DC是否有效,坐标是否正确
HDC hDC, // 目标DC
LPCTSTR lpString, // 字符串
int nCount, // 字符串长度
LPRECT lpRect, // 要写文字的矩形
UINT uFormat // 参数,如DT_CENTER为中间显示;
);
{
......
PAINTSTRUCT ps;
HDC hdc=BeginPaint(hWnd, &ps);//GetDC(hWnd);
RECT rt;
rt.top=5;
GetClientRect(hWnd, &rt);
DrawText(hdc," P2P Server starting... \n\n",200, &rt, DT_CENTER);
TextOut(hdc,50,70," hehe P2P Server starting... \n\n",90);
EndPaint(hWnd, &ps);}以上我的源码。
我想找更好的方法。
而且如果你的窗口是作为另一个父窗口的view,那么貌似在WM_CREATE时候获取的::getclientrect()为空值。
只有在窗口显示之后才会有值。
pparams = (PPARAMS)lpParam;
SendMessage (pparams->hwnd, WM_CALC_DONE, 0, 0);主程序WndProc
case WM_CALC_DONE:
//MessageBox(NULL,"3.0","Server",MB_OK);
// HWND hwndB =
CreateWindow("edit", " CCSp2p .. " ,WS_CHILD | WS_VISIBLE | BS_GROUPBOX
10 , 90 , 200 , 100 ,hWnd, NULL, NULL, NULL);LoadString(hInst,IDS_TEST, szHello, MAX_LOADSTRING);我用发消息的方式在主程序实现szhello的显示,可惜还是不利索!谢谢大伙踊跃参与。