Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: wndclass.hbrBackground Lại thêm 1 lỗi !

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

    Mặc định wndclass.hbrBackground Lại thêm 1 lỗi !

    PHP Code:
    BOOL InitApplication(HINSTANCE hInstance)
    {
        
    WNDCLASS wndclass;
        
    wndclass.style =    CS_HREDRAW CS_VREDRAW ;
        
    wndclass.lpfnWndProc =    winproc;
        
    wndclass.cbClsExtra  =    0;
        
    wndclass.cbWndExtra     =    0;
        
    wndclass.hInstance   =    hInstance;
        
    wndclass.hIcon        =    LoadIcon (NULL,IDI_APPLICATION);
        
    wndclass.hCursor    =    LoadCursor(NULLIDC_ARROW);
        
    //wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
        
    wndclass.hbrBackground GetStockObject(WHITE_BRUSH);
        
        
        
    wndclass.lpszClassName AppName;
        
    wndclass.lpszMenuName  NULL;
        return 
    RegisterClass(&wndclass);

    //wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wndclass.hbrBackground = GetStockObject(WHITE_BRUSH);

    Đó lỗi chỗ đấy ? Nó bảo don't convert from ? to struct HBRUSH chán quá nè ?
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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

    Online chờ các bro mà chẳng thấy ai ? Nghèo mà gặp eo thế này ? đau đầu thật ? :|

    wndclass.hbrBackground = CreateSolidBrush (RGB(0,0,0));
    sửa lỗi trên thành cái dòng này thì nó không báo lỗi ấy nữa Ctrl F7 thì không thấy chuyện gì xảy ra . Nhưng Ctrl F5 thì nó báo 2 lỗi như thế này :

    unresolved external symbol "int _cdecl InitInstance(struct HINSTANCE_ *,int)" (?InitInstance@@YAHPAUHINSTANCE_@@H@Z)
    unresolved external symbol "long _stdcall winproc(struct HWND_ *,ungsigned int,ingsigned int,long)" (?winproc@@YGJPAUHWND__@@IIJ@Z)
    Hix chẳng biết hỏi sao nữa ? Anh em coi giúp thử coi ?

    Nếu được thì test luôn đoạn code trên giúp . (Không biết 2 cái lỗi này fix xong thì gặp bi nhiêu lỗi nữa đây ? Vạn sự khởi đầu nan mà sao thấy nản thế này ? Chép nguyên trong sách chứ có sai gì đâu ?)

  3. #3
    Ngày gia nhập
    01 2007
    Nơi ở
    Hải Phòng
    Bài viết
    210

    Bạn thử lại với code này xem còn bị lỗi ko ?

    Code:
    BOOL InitApplication(HINSTANCE hInstance)
    {
        WNDCLASS wndclass;
        wndclass.style =    CS_HREDRAW | CS_VREDRAW ;
        wndclass.lpfnWndProc =    winproc;
        wndclass.cbClsExtra  =    0;
        wndclass.cbWndExtra     =    0;
        wndclass.hInstance   =    hInstance;
        wndclass.hIcon        =    LoadIcon (NULL,IDI_APPLICATION);
        wndclass.hCursor    =    LoadCursor(NULL, IDC_ARROW);
        wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
        
        
        wndclass.lpszClassName = AppName;
        wndclass.lpszMenuName  = NULL;
        return RegisterClass(&wndclass);
    }
    pEnGwINUS.

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

    wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
    Rồi thử ép kiểu vậy rồi nhưng mà không được mới chuyển qua dùng hàm :
    HBRUSH CreateSolidBrush (int );
    và có 2 lỗi như trên đấy !

  5. #5
    Ngày gia nhập
    01 2007
    Nơi ở
    Hải Phòng
    Bài viết
    210

    kidkid đã đưa cho tớ mã nguồn. Test ra tổng cộng 3 lỗi. Tớ sẽ bôi đậm những chỗ cậu bị lỗi nghen

    Code:
    // 3.cpp : Defines the entry point for the application.
    //
    
    #include "stdafx.h"
    
    LRESULT CALLBACK winproc(HWND, UINT, WPARAM, LPARAM);
    BOOL InitApplication (HINSTANCE);
    BOOL InitInstance(HINSTANCE, int);
    char AppName[]="HelloPgm";
    
    
    int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       cmdShow)
    {
     	MSG msg;
    	if(!InitApplication(hInstance)) return FALSE;
    	if(!InitInstance(hInstance, cmdShow)) return FALSE;
    	while(GetMessage(&msg,NULL,0,0))
    	{
    		TranslateMessage(&msg);
    		DispatchMessage(&msg);
    	}
    
    
    	return msg.wParam;
    }
    
    
    BOOL InitApplication(HINSTANCE hInstance)
    {
    	WNDCLASS wndclass;
    	wndclass.style =	CS_HREDRAW | CS_VREDRAW ;
    	wndclass.lpfnWndProc =	winproc;
    	wndclass.cbClsExtra  =	0;
    	wndclass.cbWndExtra	 =	0;
    	wndclass.hInstance   =	hInstance;
    	wndclass.hIcon		=	LoadIcon (NULL,IDI_APPLICATION);
    	wndclass.hCursor	=	LoadCursor(NULL, IDC_ARROW);
    	wndclass.hbrBackground = GetStockObject(WHITE_BRUSH); // Cái này cậu thiếu (HBRUSH)
    	
    	
    	wndclass.lpszClassName = AppName;
    	wndclass.lpszMenuName  = NULL;
    	return RegisterClass(&wndclass);
    }
    
    BOOL InitInstane(HINSTANCE hInstance, int cmdShow) // Cái này gõ nhầm Instance thành Instane
    {
    	HWND hWnd;
    	hWnd = CreateWindow(AppName,
    						"Hello World",
    						WS_OVERLAPPEDWINDOW,
    						CW_USEDEFAULT,
    						0,
    						CW_USEDEFAULT,
    						0,
    						NULL,
    						NULL,
    						hInstance,
    						NULL);
    
    
    	if(!hWnd) return FALSE;
    	ShowWindow(hWnd,cmdShow);
    	UpdateWindow (hWnd);
    	return TRUE;
    }
    
    LRESULT CALLBACK Winproc(HWND hWnd,	 // Còn chỗ này thì Winproc không được viết hoa chữ W.
    						 UINT msg,
    						 WPARAM wparam,
    						 LPARAM lparam)
    {
    	HDC			hdc;
    	PAINTSTRUCT ps;
    	RECT		rect;
    	switch(msg)
    	{
    		case WM_PAINT:
    			hdc= BeginPaint ( hWnd,&ps);
    			GetClientRect(hWnd,&rect);
    			DrawText ( hdc, " Hello World ",-1,&rect,DT_SINGLELINE| DT_CENTER | DT_VCENTER);
    			EndPaint(hWnd,&ps);
    			return 0;
    		case WM_DESTROY:
    			PostQuitMessage(0);
    			return 0;
    	}
    	
    	return DefWindowProc(hWnd,msg,wparam,lparam);
    }
    Mã nguồn hoàn chỉnh sẽ là :

    Code:
    // 3.cpp : Defines the entry point for the application.
    //
    
    #include "stdafx.h"
    
    LRESULT CALLBACK winproc(HWND, UINT, WPARAM, LPARAM);
    BOOL InitApplication (HINSTANCE);
    BOOL InitInstance(HINSTANCE, int);
    char AppName[]="HelloPgm";
    
    
    int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       cmdShow)
    {
     	MSG msg;
    	if(!InitApplication(hInstance)) return FALSE;
    	if(!InitInstance(hInstance, cmdShow)) return FALSE;
    	while(GetMessage(&msg,NULL,0,0))
    	{
    		TranslateMessage(&msg);
    		DispatchMessage(&msg);
    	}
    
    
    	return msg.wParam;
    }
    
    
    BOOL InitApplication(HINSTANCE hInstance)
    {
    	WNDCLASS wndclass;
    	wndclass.style =	CS_HREDRAW | CS_VREDRAW ;
    	wndclass.lpfnWndProc =	winproc;
    	wndclass.cbClsExtra  =	0;
    	wndclass.cbWndExtra	 =	0;
    	wndclass.hInstance   =	hInstance;
    	wndclass.hIcon		=	LoadIcon (NULL,IDI_APPLICATION);
    	wndclass.hCursor	=	LoadCursor(NULL, IDC_ARROW);
    	wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    	
    	
    	wndclass.lpszClassName = AppName;
    	wndclass.lpszMenuName  = NULL;
    	return RegisterClass(&wndclass);
    }
    
    BOOL InitInstance(HINSTANCE hInstance, int cmdShow)
    {
    	HWND hWnd;
    	hWnd = CreateWindow(AppName,
    						"Hello World",
    						WS_OVERLAPPEDWINDOW,
    						CW_USEDEFAULT,
    						0,
    						CW_USEDEFAULT,
    						0,
    						NULL,
    						NULL,
    						hInstance,
    						NULL);
    
    
    	if(!hWnd) return FALSE;
    	ShowWindow(hWnd,cmdShow);
    	UpdateWindow (hWnd);
    	return TRUE;
    }
    
    LRESULT CALLBACK winproc(HWND hWnd,
    						 UINT msg,
    						 WPARAM wparam,
    						 LPARAM lparam)
    {
    	HDC			hdc;
    	PAINTSTRUCT ps;
    	RECT		rect;
    	switch(msg)
    	{
    		case WM_PAINT:
    			hdc= BeginPaint ( hWnd,&ps);
    			GetClientRect(hWnd,&rect);
    			DrawText ( hdc, " Hello World ",-1,&rect,DT_SINGLELINE| DT_CENTER | DT_VCENTER);
    			EndPaint(hWnd,&ps);
    			return 0;
    		case WM_DESTROY:
    			PostQuitMessage(0);
    			return 0;
    	}
    	
    	return DefWindowProc(hWnd,msg,wparam,lparam);
    }
    --May mà cậu send mã nguồn cho. Không thì xem mỗi đoạn đầu ở trên kia thì đến tết Tây cũng ko tìm ra lỗi.
    pEnGwINUS.

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

    Mặc định wndclass.hbrBackground Lại thêm 1 lỗi !

    Rồi tớ chạy được rồi hieubm ơi ! Thanks tiếp nhé
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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

  1. thêm dử liệu vào datagirview nhưng khôn thêm vào database
    Gửi bởi saodemd trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 9
    Bài viết cuối: 11-06-2012, 10:03 PM
  2. Trả lời: 2
    Bài viết cuối: 02-12-2011, 06:10 PM
  3. WNDCLASS và WNDCLASSEX khác nhau như thế nào?
    Gửi bởi princehai trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 13-08-2011, 04:46 PM
  4. thêm và không thêm button vào row DataGridView in C#
    Gửi bởi aazz trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 06-05-2011, 05:45 PM
  5. Thêm một hàng mới vào DataGridView đồng thời thêm vào CSDLSQL
    Gửi bởi leminhquan1990 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 08-04-2011, 11:14 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