الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

windows programing in C

مغلق
بدأه talal*c في 21 فبراير 2002 · 3 رد · 481 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني ما هو windows programing هل هو الــ GUI

graphical user inter face

او هو الفجول سي ؟!؟

ألاحظ وجود هذا الموضوع في نهاية أغلب كتب السي و لكن البرمجه بها

مختلف 100% ؟!؟

أرجو توضيح ما هو windows programing :)

و أيضاً توضيح ما هو الخطأ في البرنامج هذا :

 
#include < windows.h >

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM );

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow)
{
	HWND             hWindow; 
	MSG              Message; 
	WNDCLASS         WinClass;

	memset(&WinClass,0,sizeof(WNDCLASS));
	WinClass.style = CS_HREDRAW | CS_VREDRAW ;
	WinClass.lpfnWndProc = WndProc; 
	WinClass.hInstance = hInstance ; 
	WinClass.hbrBackground = (HBRUSH) (COLOR_WINDOW+1) ;
	WinClass.hCursor = LoadCursor(NULL, IDC_ARROW);
	WinClass.lpszClassName = "Windows-Programm";

	if( !RegisterClass(&WinClass) )
		return(FALSE);

	hWindow = CreateWindow("Windows Program","API Program",
							WS_OVERLAPPEDWINDOW, 10,10,
							400,300,NULL,NULL,hInstance,NULL) ;
	ShowWindow(hWindow , nCmdShow) ;
	UpdateWindow(hWindow) ;

		while(GetMessage(&Message,NULL,0,0)) ;
		{
			TranslateMessage(&Message);
			DispatchMessage(&Message);
		}

		return (Message.wParam);
}
// --------------------------------------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND hWnd , UINT uiMessage , WPARAM wParam , LPARAM lParam)
{
	char str[30]= "Mouse Was Clicked hear.";
	HDC dc;
		switch(uiMessage)
		{
			case WM_LBUTTONDOWN:
				dc = GetDC(hWnd) ;
				TextOut(dc, LOWORD (lParam) , HIWORD (lParam) , str , strlen(str));

				ReleaseDC(hWnd, dc);
				return 0;
			case WM_DESTROY:
				PostQuitMessage(0);
				return 0;
			default:
				return DefWindowProc(hWnd, uiMessage, wParam, lParam);
		}
}

مع جزيل الشكر :)

#2

أخ طارق ...

Windows Programming من اسمها هي برمجو الوندوز .. الطريقة الأساسية في البرمجة هي عن طريق Win32 مباشرة أي مثل البرنامج الذي وضعته هنا وتريد اصلاحه .. هذه الطريقة معقدة وتقضي المام تام بال Win32 وهي مخصصة للمبرمجين في السي الذين لا يعرفو شئ في السي++ .. ولكن مبرمجين السي++ ممكنهم استخدامها ..

الطريقة الثانية الأكثر شهرة هي عن طريق استخدام MFC التي تأتي مع Visual C++ وهي مجموعة من الكلاسات والتوابع التي تسهل البرمجة كثيرا للوندوز ...

على كل البرنامج تبعك في غلطين جدا فظيعين ..

أولا الفاصلة المنقوطة بعد while و GetMessage .. ثانيا الأفضل أن تكون سلسلة اسم الكلاس للنافذة من نوع static أو global ....

والبرنامج المصحح هو :

#include < windows.h >

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM );

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow)
{
	HWND             hWindow; 
	MSG              Message; 
	WNDCLASS         WinClass;

	static char strWndClass[] = "Windows-Programm";

	memset(&WinClass,0,sizeof(WNDCLASS));
	WinClass.style = CS_HREDRAW | CS_VREDRAW ;
	WinClass.lpfnWndProc = WndProc; 
	WinClass.hInstance = hInstance ; 
	WinClass.hbrBackground = (HBRUSH) (COLOR_WINDOW+1) ;
	WinClass.hCursor = LoadCursor(NULL, IDC_ARROW);
	WinClass.lpszClassName = strWndClass;

	if( !RegisterClass(&WinClass) )
		return(FALSE);

	hWindow = CreateWindow(strWndClass,"API Program",
							WS_OVERLAPPEDWINDOW, 10,10,
							400,300,NULL,NULL,hInstance,NULL) ;
	ShowWindow(hWindow , nCmdShow) ;
	UpdateWindow(hWindow) ;

	while(GetMessage(&Message,NULL,0,0))
	{
		TranslateMessage(&Message);
		DispatchMessage(&Message);
	}

	return (Message.wParam);
}
// --------------------------------------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND hWnd , UINT uiMessage , WPARAM wParam , LPARAM lParam)
{
	char str[30]= "Mouse Was Clicked hear.";
	HDC dc;
		switch(uiMessage)
		{
			case WM_LBUTTONDOWN:
				dc = GetDC(hWnd) ;
				TextOut(dc, LOWORD (lParam) , HIWORD (lParam) , str , strlen(str));

				ReleaseDC(hWnd, dc);
				return 0;
			case WM_DESTROY:
				PostQuitMessage(0);
				return 0;
			default:
				return DefWindowProc(hWnd, uiMessage, wParam, lParam);
		}
}

Coding on the Cloud and for the Cloud!

My Blog

#3

شكراً جزيلاً أستاذي هاني :)

أولاً أنا لست طارق بل طلال ;)

ثانيا شكراً على هذه المعلومات أنا لا أفقه شيئاً فيها ولكن

وجدت الكود في أحد الكتب وأردت تجربته من باب الفضول :)

شكراً مرة أخرى ,,,

#4

:eek: أنا آسف .. أي طلال وطارق متل بعض .. ;)

Coding on the Cloud and for the Cloud!

My Blog

هذا الموضوع مغلق.

مواضيع مشابهة