Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Hiển thị chuỗi, và số thực trên text edit của MFC như thế nào???

  1. #1
    Ngày gia nhập
    07 2007
    Bài viết
    43

    Mặc định Hiển thị chuỗi, và số thực trên text edit của MFC như thế nào???

    Hiện mình mới bắt đầu học VC++, được giao làm 1 bài giải phương trình bậc 2. Bài thì ko có khó khăn j, nhưng mà mình lại chưa được học cách hiển thị số thực để hiện thị nghiệm (mình chưa có giáo trình nên chưa tra được) và một ván đề nữa là hiển thị chuỗi trong ô editbox. Nên lên đây nhờ mọi người giúp cho mình mấy câu lệnh

    Thêm 1 cái hình nữa cho chi tiết:
    Khi mình nhập A, B, C sau đó nhấn nút giải phương trình thì nghiệm sẽ đc hiển thị ở 3 ô x, x1, x2 và câu kết luận đại khái kiểu phương trình vô nghiệm, có nghiệm... sẽ được hiển thị dưới ô kết luân.
    Bjờ vấn đề gặp phải là chưa biết hiển thị chuỗi để hiển thị câu phương trình xyz, và chưa biết làm thế nào để hiển thị kết quả ở dạng số thực vào nghiệm. Mong ae giúp đỡ
    Attached Thumbnails Attached Thumbnails untitled.JPG  
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 14-05-2009 lúc 10:11 PM.
    Rongcon.com.vn

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bạn làm bằng MFC phải không ? Nếu vậy thì lúc tạo biến đại diện cho những textbox bạn đừng chọn CString mà hãy chọn double.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    07 2007
    Bài viết
    43

    Nói thật, mình cũng ko rõ là có fải bằm MFC ko nữa, khi tạo 1 project mới, mình làm bằn win32 application, và chọn sẵn chương trình hello world, và từ đó sửa lại thành chương trình mới. Bạn có thể nói rõ hơn ko, mình chưa hiểu lắm, thêm cả câu lệnh nữa càng tốt
    Rongcon.com.vn

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Những cái textbox ấy bạn tạo từ đâu ? Bạn không đưa code thì khó nói quá, mình chỉ có thể hướng dẫn cách chung chung như thế này :

    C++ Code:
    1. double num = 123.456;
    2. CString s;
    3. s.Format("%lf",num);
    4. // sau đó gán chuỗi s vào cho textbox
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  5. #5
    Ngày gia nhập
    07 2007
    Bài viết
    43

    C++ Code:
    1. // BT110509.cpp : Defines the entry point for the application.
    2. //
    3.  
    4. #include "stdafx.h"
    5. #include "resource.h"
    6. #include "math.h"
    7.  
    8. #define MAX_LOADSTRING 100
    9.  
    10. // Global Variables:
    11. HINSTANCE hInst;                                // current instance
    12. TCHAR szTitle[MAX_LOADSTRING];                              // The title bar text
    13. TCHAR szWindowClass[MAX_LOADSTRING];                                // The title bar text
    14.  
    15. // Foward declarations of functions included in this code module:
    16. ATOM                MyRegisterClass(HINSTANCE hInstance);
    17. BOOL                InitInstance(HINSTANCE, int);
    18. LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
    19. LRESULT CALLBACK    About(HWND, UINT, WPARAM, LPARAM);
    20. LRESULT CALLBACK    GFX(HWND, UINT, WPARAM, LPARAM);
    21. LRESULT CALLBACK    GPT2(HWND, UINT, WPARAM, LPARAM);
    22. LRESULT CALLBACK    DRAW(HWND, UINT, WPARAM, LPARAM);
    23.  
    24. int APIENTRY WinMain(HINSTANCE hInstance,
    25.                      HINSTANCE hPrevInstance,
    26.                      LPSTR     lpCmdLine,
    27.                      int       nCmdShow)
    28. {
    29.     // TODO: Place code here.
    30.     MSG msg;
    31.     HACCEL hAccelTable;
    32.  
    33.     // Initialize global strings
    34.     LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
    35.     LoadString(hInstance, IDC_BT110509, szWindowClass, MAX_LOADSTRING);
    36.     MyRegisterClass(hInstance);
    37.  
    38.     // Perform application initialization:
    39.     if (!InitInstance (hInstance, nCmdShow))
    40.     {
    41.         return FALSE;
    42.     }
    43.  
    44.     hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_BT110509);
    45.  
    46.     // Main message loop:
    47.     while (GetMessage(&msg, NULL, 0, 0))
    48.     {
    49.         if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
    50.         {
    51.             TranslateMessage(&msg);
    52.             DispatchMessage(&msg);
    53.         }
    54.     }
    55.  
    56.     return msg.wParam;
    57. }
    58.  
    59.  
    60.  
    61. //
    62. //  FUNCTION: MyRegisterClass()
    63. //
    64. //  PURPOSE: Registers the window class.
    65. //
    66. //  COMMENTS:
    67. //
    68. //    This function and its usage is only necessary if you want this code
    69. //    to be compatible with Win32 systems prior to the 'RegisterClassEx'
    70. //    function that was added to Windows 95. It is important to call this function
    71. //    so that the application will get 'well formed' small icons associated
    72. //    with it.
    73. //
    74. ATOM MyRegisterClass(HINSTANCE hInstance)
    75. {
    76.     WNDCLASSEX wcex;
    77.  
    78.     wcex.cbSize = sizeof(WNDCLASSEX);
    79.  
    80.     wcex.style          = CS_HREDRAW | CS_VREDRAW;
    81.     wcex.lpfnWndProc    = (WNDPROC)WndProc;
    82.     wcex.cbClsExtra     = 0;
    83.     wcex.cbWndExtra     = 0;
    84.     wcex.hInstance      = hInstance;
    85.     wcex.hIcon          = LoadIcon(hInstance, (LPCTSTR)IDI_BT110509);
    86.     wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    87.     wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
    88.     wcex.lpszMenuName   = (LPCSTR)IDC_BT110509;
    89.     wcex.lpszClassName  = szWindowClass;
    90.     wcex.hIconSm        = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);
    91.  
    92.     return RegisterClassEx(&wcex);
    93. }
    94.  
    95. //
    96. //   FUNCTION: InitInstance(HANDLE, int)
    97. //
    98. //   PURPOSE: Saves instance handle and creates main window
    99. //
    100. //   COMMENTS:
    101. //
    102. //        In this function, we save the instance handle in a global variable and
    103. //        create and display the main program window.
    104. //
    105. BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
    106. {
    107.    HWND hWnd;
    108.  
    109.    hInst = hInstance; // Store instance handle in our global variable
    110.  
    111.    hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
    112.       CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
    113.  
    114.    if (!hWnd)
    115.    {
    116.       return FALSE;
    117.    }
    118.  
    119.    ShowWindow(hWnd, nCmdShow);
    120.    UpdateWindow(hWnd);
    121.  
    122.    return TRUE;
    123. }
    124.  
    125. //
    126. //  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
    127. //
    128. //  PURPOSE:  Processes messages for the main window.
    129. //
    130. //  WM_COMMAND  - process the application menu
    131. //  WM_PAINT    - Paint the main window
    132. //  WM_DESTROY  - post a quit message and return
    133. //
    134. //
    135. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    136. {
    137.     int wmId, wmEvent;
    138.     PAINTSTRUCT ps;
    139.     HDC hdc;
    140.     TCHAR szHello[MAX_LOADSTRING];
    141.     LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
    142.  
    143.     COLORREF crOlderColor;
    144.     static COLORREF  crColor= RGB(0,0,0);
    145.     static UINT nAlign = DT_CENTER;
    146.     HPEN hPen, hOldPen;
    147.     HBRUSH hBrush, hOlderBrush;
    148.     POINT ptCenter;
    149.  
    150.     switch (message)
    151.     {
    152.         case WM_COMMAND:
    153.             wmId    = LOWORD(wParam);
    154.             wmEvent = HIWORD(wParam);
    155.             // Parse the menu selections:
    156.             switch (wmId)
    157.             {
    158.                 case IDM_ABOUT:
    159.                    DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
    160.                    break;
    161.                 case IDM_GIAIFX:
    162.                     DialogBox(hInst, (LPCTSTR)IDD_PTFX, hWnd, (DLGPROC)GFX);
    163.                    break;
    164.                 case IDM_GIAIPT2:
    165.                     DialogBox(hInst, (LPCTSTR)IDD_PTB2, hWnd, (DLGPROC)GPT2);
    166.                    break;
    167.                 case IDM_VUONG:
    168.                     DialogBox(hInst, (LPCTSTR)IDD_COLOR, hWnd, (DLGPROC)DRAW);
    169.                    break;
    170.                 case IDM_EXIT:
    171.                    DestroyWindow(hWnd);
    172.                    break;
    173.                 default:
    174.                    return DefWindowProc(hWnd, message, wParam, lParam);
    175.             }
    176.            
    177.             break;
    178.         case WM_PAINT://ung dung de ve len vung lam viec
    179.            
    180.             hdc = BeginPaint(hWnd, &ps); //B1: Tao lap thiet bi ngu canh
    181.             //Thiet lap doi tuong
    182.             crOlderColor= SetTextColor(hdc,crColor);
    183.             //tao but ve
    184.             hPen = CreatePen(PS_SOLID,1,crColor);
    185.             hBrush = CreateSolidBrush(crColor);
    186.             hOldPen= (HPEN)SelectObject(hdc,hPen);
    187.             hOlderBrush= (HBRUSH)SelectObject(hdc,hBrush);
    188.            
    189.             //Thuc hien ham API
    190.  
    191.             RECT rt;
    192.             GetClientRect(hWnd,&rt);
    193.             ptCenter.x= (rt.left + rt.right)/2;
    194.             ptCenter.y= (rt.top + rt.bottom)/2;
    195.            
    196.             Rectangle(hdc,ptCenter.x - 100,ptCenter.y - 50,ptCenter.x + 100,ptCenter.y + 50);
    197.  
    198.             SelectObject(hdc,hOldPen);
    199.             SelectObject(hdc,hOlderBrush);
    200.             DeleteObject(hPen);
    201.             DeleteObject(hOlderBrush);
    202.  
    203.             //bc3:
    204.             GetClientRect(hWnd, &rt);
    205.             DrawText(hdc, "CHAO CAC BAN DEN VOI C FOR WIN", strlen("CHAO CAC BAN DEN VOI C FOR WIN"), &rt, DT_CENTER);
    206.             SetTextColor(hdc,crOlderColor);
    207.  
    208.             //b5: Huy bo
    209.             EndPaint(hWnd, &ps);
    210.             break;
    211.         case WM_DESTROY:
    212.             PostQuitMessage(0);
    213.             break;
    214.         default:
    215.             return DefWindowProc(hWnd, message, wParam, lParam);
    216.    }
    217.    return 0;
    218. }
    219.  
    220. // Mesage handler for about box.
    221. LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    222. {
    223.     switch (message)
    224.     {
    225.         case WM_INITDIALOG:
    226.                 return TRUE;
    227.  
    228.         case WM_COMMAND:
    229.             if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
    230.             {
    231.                 EndDialog(hDlg, LOWORD(wParam));
    232.                 return TRUE;
    233.             }
    234.             break;
    235.     }
    236.     return FALSE;
    237. }
    238.  
    239.  
    240. LRESULT CALLBACK DRAW(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    241. {
    242.     HWND hWnd;
    243.     switch (message)
    244.     {
    245.         case WM_INITDIALOG:
    246.                 return TRUE;
    247.  
    248.         case WM_COMMAND:
    249.             if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
    250.             {
    251.                 EndDialog(hDlg, LOWORD(wParam));
    252.                 return TRUE;
    253.             }
    254.             break;
    255.             if (LOWORD(wParam) == IDC_BUTTON_VE)
    256.             {
    257.                 InvalidateRect(hWnd,NULL,TRUE);// kich hoat WM_PAINT
    258.             }
    259.     }
    260.     return FALSE;
    261. }
    262. LRESULT CALLBACK GFX(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    263. {
    264.     int x, kq=0;
    265.     switch (message)
    266.     {
    267.         case WM_INITDIALOG:
    268.                 return TRUE;
    269.  
    270.         case WM_COMMAND:
    271.             if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
    272.             {
    273.                 EndDialog(hDlg, LOWORD(wParam));
    274.                 return TRUE;
    275.             }
    276.             if (LOWORD(wParam) == IDC_BUTTON_GFX)
    277.             {
    278.                 x= GetDlgItemInt(hDlg,IDC_EDIT_X,NULL,NULL);
    279.                 kq= 10*pow(x,5)+5;
    280.                 SetDlgItemInt(hDlg,IDC_EDIT_KQ,kq,NULL);
    281.             }
    282.             break;
    283.     }
    284.     return FALSE;
    285. }
    286.  
    287. LRESULT CALLBACK GPT2(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    288. {
    289.     int a,b,c,d,x,x1,x2;
    290.     switch (message)
    291.     {
    292.         case WM_INITDIALOG:
    293.                 return TRUE;
    294.  
    295.         case WM_COMMAND:
    296.             if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
    297.             {
    298.                 EndDialog(hDlg, LOWORD(wParam));
    299.                 return TRUE;
    300.             }
    301.             if (LOWORD(wParam) == IDC_BUTTON_GIAI)
    302.             {
    303.                 a= GetDlgItemInt(hDlg,IDC_EDIT_A,NULL,NULL);
    304.                 b= GetDlgItemInt(hDlg,IDC_EDIT_B,NULL,NULL);
    305.                 c= GetDlgItemInt(hDlg,IDC_EDIT_C,NULL,NULL);
    306.                 if (a==0)
    307.                 {
    308.                     x= c/b;
    309.                     [B]SetDlgItemInt(hDlg,IDC_EDIT_X,x,NULL);[/B]
    310.                 } else
    311.                     if((a!=0)&&(b==0))
    312.                     {
    313.                         x= c/sqrt(a);
    314.                         [B]SetDlgItemInt(hDlg,IDC_EDIT_X,x,NULL);[/B]
    315.                     } else
    316.                         if((a==0)&&(b==0))
    317.                         {
    318.  
    319.                         }
    320.  
    321.                 d= b*b-4*a*c;
    322.                 if (d<0)
    323.                 {
    324.                
    325.                 }
    326.                 else if (d=0)
    327.                 {
    328.                     x= -b/2*a;
    329.                     [B]SetDlgItemInt(hDlg,IDC_EDIT_X,x,NULL);[/B]
    330.                 }
    331.                 else if (d>0)
    332.                 {
    333.  
    334.                     x1= (-b-sqrt(d))/2*a;
    335.                     x2= (-b+sqrt(d))/2*a;
    336.                     [B]SetDlgItemInt(hDlg,IDC_EDIT_X1,x1,NULL);
    337.                     SetDlgItemInt(hDlg,IDC_EDIT_X2,x2,NULL);[/B]
    338.                 }
    339.  
    340.                    
    341.             }
    342.                
    343.             break;
    344.     }
    345.     return FALSE;
    346. }

    đây là toàn bộ code bài của mình, mình đang làm thêm phần vẽ hình theo yêu cầu của thầy. Những chỗ mình in đậm là những chỗ mình muốn in cái kết quả số thực ra .Các biên IDC_EDIT_X... chính là tên các edit box, sử dụng tool tạo trong resource.
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 15-05-2009 lúc 12:17 AM.
    Rongcon.com.vn

  6. #6
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mặc định Hiển thị chuỗi, và số thực trên text edit của MFC như thế nào???

    Bạn up cả project lên đi, thiếu resource tùm lum, mình add bằng tay mệt quá.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  7. #7
    Ngày gia nhập
    07 2007
    Bài viết
    43

    thanks bạn đã nhiệt tình, mình gửi cả project lên đây, chỉ cần giúp mình phần hiển thị thôi, còn phần đồ họa mình chưa được học, nên có làm cũng chwa hiểu
    Attached Files Attached Files
    Rongcon.com.vn

  8. #8
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mình sửa mẫu cho bạn phần pt bậc 2, bạn tự làm tiếp bậc 1 nha.
    Attached Files Attached Files
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  9. #9
    Ngày gia nhập
    07 2007
    Bài viết
    43

    bác có thể up lại ko, bị lỗi rồi
    Rongcon.com.vn

  10. #10
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Link mới đây. Bạn mở file .dsw đó.
    http://www.mediafire.com/download.php?mnumzh0jm0m
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

Các đề tài tương tự

  1. ADO.NET Date Edit của DEV khi click bị mất text ( EditValue ) ?
    Gửi bởi gaonline31293 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 08-05-2013, 08:48 AM
  2. Cách đặt thuộc tính Edit text MFC ?
    Gửi bởi Nobita_cpp trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 10-02-2011, 12:23 PM
  3. Đọc chuỗi trên file text rồi lưu vào mảng như thế nào?
    Gửi bởi soul_knightvn trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 21-10-2010, 08:17 PM
  4. Xuất Text ra Edit Box theo dòng???
    Gửi bởi egr trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 26-09-2009, 06:42 AM
  5. Edit Text trong C For Win!
    Gửi bởi fedo trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 17-10-2007, 09:12 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn