Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: cần giúp đỡ về Thread

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

    Mặc định cần giúp đỡ về Thread

    mình có 1 bài về thread. đề yêu cầu hiện 1 chữ bất kỳ ra 1 vị trí ngẫu nhiên trên cửa sổ. bạn nào có thể giúp đỡ mình bài này đc ko.về phần hiện random ý

  2. #2
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    1. Cậu viết lộn box.
    2. Giúp đỡ về random sao đặt tiêu đề là thread ?
    3. Cậu viết bằng gi ?
    4. Cậu dùng hàm rand()%(nWidth | nHeight)
    rồi xuất các tọa độ này lên màn hình.

    Nếu C/C++ console dùng gotoxy
    Nếu Win32 dùng pDC->TextOut(x,y,sText);

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

    Bạn post sai box, đã move lại cho bạn rồi đó.
    Bạn muốn hỏi về thread hay random ? Hay cả hai ?
    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.

  4. #4
    Ngày gia nhập
    11 2007
    Bài viết
    6

    mình hỏi cả 2, mình đang học lập trình trên win với MFC,đề nó yêu cầu dùng luồng đề viết ct hiện 1 chữ bất kỳ ra 1 vị trí ngẫu nhiên trên cửa sổ

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

    C++ Code:
    1. #include<afxwin.h>
    2. #define IDM_THREAD 174
    3. #define IDM_EXIT    142
    4.  
    5. UINT MyThread(LPVOID pMain);
    6. int MyID = 0;
    7. int ttOnThread=0;
    8.  
    9. class CMyApp: public CWinApp
    10. {
    11. public:
    12.     BOOL InitInstance();
    13. };
    14. class CMyWin: public CFrameWnd
    15. {
    16. public:
    17.  
    18.     CMyWin();
    19.     afx_msg void OnTimer(UINT nIDEvent);
    20.     void OnThread();
    21.     void OnExit();
    22.     UINT kiTu;
    23.     char ranDomKiTu();
    24.     int ranX;
    25.     int ranY;
    26.  
    27.     DECLARE_MESSAGE_MAP()
    28.  
    29.  
    30. };
    31.  
    32. CMyApp theApp;
    33.  
    34. BOOL CMyApp::InitInstance()
    35. {
    36.     m_pMainWnd = new CMyWin;
    37.     m_pMainWnd ->ShowWindow(SW_SHOWMAXIMIZED);
    38.     m_pMainWnd ->UpdateWindow();
    39.     return TRUE;
    40. }
    41.  
    42. BEGIN_MESSAGE_MAP(CMyWin,CFrameWnd)
    43.     ON_WM_TIMER()
    44.     ON_COMMAND(IDM_THREAD,OnThread)
    45.     ON_COMMAND(IDM_EXIT,OnExit)
    46. END_MESSAGE_MAP()
    47.  
    48. CMyWin::CMyWin()
    49. {  
    50.   Create(NULL,"Chuong trinh hien chu bat ki ra mot vi tri bat ky tren cua so");
    51.   CMenu mn;
    52.   mn.CreateMenu();
    53.   mn.AppendMenu(MF_STRING|MF_BYCOMMAND,IDM_THREAD,"click here");
    54.   mn.AppendMenu(MF_STRING|MF_BYCOMMAND,IDM_EXIT,"Exit");
    55.   SetMenu(&mn);
    56.  
    57. }
    58.  
    59. void CMyWin::OnTimer(UINT nIDEvent)
    60. {
    61.     CDC*dc = GetDC();
    62.     char s[255];
    63.  
    64.     sprintf(s,"%c",ranDomKiTu());
    65.     CPoint Min,Max;
    66.  
    67.     //Thiet lap vi tri ngau nhien tren man hinh
    68.     RECT Rect;
    69.     GetClientRect(&Rect);
    70.     Min.x = Rect.left;
    71.     Min.y = Rect.top;
    72.     Max.x = Rect.right;
    73.     Max.y = Rect.bottom;
    74.     ranX = (double)rand() / (RAND_MAX + 1) * (Max.x - Min.x)+ Min.x;
    75.     ranY = (double)rand() / (RAND_MAX + 1) * (Max.y - Min.y)+ Min.y;
    76.    
    77.     sprintf(s,"%c",ranDomKiTu());
    78.     dc->SetTextColor(RGB(0,0,0));
    79.     dc->TextOut(ranX,ranY,s);  
    80.  
    81. }
    82.  
    83.  
    84. char CMyWin::ranDomKiTu()
    85.     {
    86.    
    87.     kiTu = (double)rand() / (RAND_MAX + 1) * 25+ 97;
    88.     return kiTu;
    89.     }
    90.  
    91.  
    92.  
    93.  
    94. void CMyWin::OnThread()
    95. {
    96. if(ttOnThread>0) return;
    97. SetTimer(1,1000,NULL);
    98. ttOnThread=1;
    99. }
    100.  
    101. void CMyWin::OnExit()
    102. {
    103. DestroyWindow();
    104. }
    105.  
    106. UINT MyThread(LPVOID pMain)
    107. {
    108.    
    109.     CMyWin*p=(CMyWin*)pMain;
    110.     CDC*d=p->GetDC();
    111.  
    112. return 0;
    113. }

    đây là code mình đang viết.nhưng chỉ xây dựng đc random bên ngoài thread thôi,ko làm thế nào mà đưa đc vào trong thread cả.
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 25-11-2008 lúc 08:59 AM.

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

    Mặc định cần giúp đỡ về Thread

    Đối với những bài MFC, bạn vui lòng nén cả project đem lên đây. Bạn đưa code như vậy cũng khó sửa lắm.
    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
    11 2007
    Bài viết
    6

    đây project đây.thanks bạn
    Attached Files Attached Files
    Đã được chỉnh sửa lần cuối bởi hunter1102 : 25-11-2008 lúc 11:09 AM.

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

    Mình đã sửa lai cho bạn rồi đó. Chương trình khi chạy sẽ tạo 2 thread, một thread vẽ ra số và một thread vẽ ra chữ.
    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
    11 2007
    Bài viết
    6

    uh để mình xem thanks bạn nhiều nha

  10. #10
    Ngày gia nhập
    11 2007
    Bài viết
    6

    cho mình hỏi cái tại sao lại cần thread để vẽ ra số làm j`

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

  1. giúp về dừng thread để thực hiện 1 công việc sau đó chạy tiếp thread đó
    Gửi bởi prt_awm trong diễn đàn Nhập môn lập trình Java
    Trả lời: 2
    Bài viết cuối: 03-11-2012, 09:48 PM
  2. Trả lời: 0
    Bài viết cuối: 16-02-2012, 10:37 PM
  3. Thread trong C#. Cần giúp đỡ
    Gửi bởi coder_newbie trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 4
    Bài viết cuối: 10-06-2010, 03:55 PM
  4. Lỗi về thread mong mọi người giúp đỡ
    Gửi bởi congtuazx trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 07-10-2009, 09:45 AM
  5. Xử lý thread trong lập trình QT4, mong mọi người giúp đỡ?
    Gửi bởi bboy0303 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 22-05-2009, 06:34 PM

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