读书人

vc 文本输出解决方案

发布时间: 2012-03-11 18:15:38 作者: rapoo

vc 文本输出

C/C++ code
switch (message)                  /* handle the messages */    {                case WM_COMMAND:            switch (LOWORD(wParam))            {            case HELP_WAY1:                、、SetWindowText(hwnd,TEXT("i love you"));             //TextOut(hdc, TEXT("woshihebin"), lstrlen("woshihebin"), &rt, DT_CENTER);        //    EndPaint(hwnd, &ps);                break;            case IDM_EXIT:                DestroyWindow(hwnd);                break;            /*case IDM_love:                TextOut(hdc,0,50,"i love you!",strlen("i love you!"));                break;*/            default:                return DefWindowProc(hwnd, message, wParam, lParam);                            }            break;        case WM_PAINT:            hdc = BeginPaint(hwnd, &ps);            SetTextColor(hdc,RGB(255,0,0));                /* TODO: Add any drawing code here... */                        GetClientRect(hwnd, &rt);            DrawText(hdc, szHello, lstrlen(szHello), &rt, DT_CENTER);            EndPaint(hwnd, &ps);            break;        case WM_DESTROY:            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */            break;        default:                      /* for messages that we don't deal with */            return DefWindowProc (hwnd, message, wParam, lParam);    }    return 0;}

不行啊
我想让case HELP_WAY1时输出其他的文字,

[解决办法]
WM_PAINT这个是系统的消息,你的这个 HELP_WAY1消息 系统里会有吗;如果不可能有,那怎么进入你的代码!!
[解决办法]
建议楼主你创建一个全局变量CString,然后在 case HELP_WAY1时对CString进行赋值,接着调用Invalidate,在case WM_PAINT里面用hdc绘制文本就可以了

[解决办法]
8#楼的代码有两个问题:

第一个问题:两次定义同一个变量
char a[100]="i love you";
char a[100]=" i love you";

第二个问题:
strcat(a," l w y");
你始终在用strcat函数,在数组后面追加元素,100个空间很快就用完了,


[解决办法]
你显然不了解这个函数的调用流程。

strcpy(a,"00000");
InvalidateRect(NULL,NULL,1);
之后break; 函数退出。

下次再来到这个函数的时候会再次执行初始化 char a[1000]="i love you";

加static 的作用就是只初始化一次

读书人网 >VC/MFC

热点推荐