سلام
فرض کنیم من برنامه ی زیر رو دارم.
میشه یه کد برام بنویسین که صفحه برنامم Hide بشه.
کد:#include <windows.h>
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE PrevInstance, LPSTR lpszArgument, int nFunsterStil)
{
return 0;
}
ممنون
Printable View
سلام
فرض کنیم من برنامه ی زیر رو دارم.
میشه یه کد برام بنویسین که صفحه برنامم Hide بشه.
کد:#include <windows.h>
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE PrevInstance, LPSTR lpszArgument, int nFunsterStil)
{
return 0;
}
ممنون
با ShowWindow میشه وضعیت پنجره رو مشخص کرد
مثلا برای مخفی کردن به این شکل استفاده میکنیم
hwnd هندل پنجرت هستکد:ShowWindow(hwnd, SW_HIDE);
برای اطلاعات بیشتر و دیگر وضیعتها این لینک رو ببینید:
اول باید پنجره یا اگه دایلوگ هست ایجاد بشه (برای گرفتن هندل) بعد بیاین مخفی کنین ، بگین چطوری میخواین باشهکد:http://msdn.microsoft.com/en-us/library/ms633548.aspx
تا کدشو براتون بزارم
شاد باشید
ممنون
من زیاد چیزی در این باره ها نمی دونم مثلا (windows.h) می خوام بدونم که hwnd این برنامه چی هست؟
خوب این مثال رو ببینید این یه پنجره ساده رو نشون میده(خیلی به دیگر جزئیات توجه نکنید)
تابع ShowWindow برای نمیاش پنجره هست ما اگه پارامتر دوم که نوع وضعیت هست تغییر بدیم به SW_HIDEکد:#include <windows.h>
const char g_szClassName[] = "myWindowClass";
// Step 4: the Window Procedure
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wc;
HWND hwnd;
MSG Msg;
//Step 1: Registering the Window Class
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = g_szClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if(!RegisterClassEx(&wc))
{
MessageBox(NULL, "Window Registration Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
// Step 2: Creating the Window
hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
g_szClassName,
"The title of my window",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
NULL, NULL, hInstance, NULL);
if(hwnd == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
// Step 3: The Message Loop
while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
پنجره مخفی میشه
هندل (hwnd) هم با تابع CreateWindowEx گرفته شده، ما هر کاری بخایم با این پنجره (یا هر شی دیگه ای)انجام بدیمکد:ShowWindow(hwnd, SW_HIDE);
UpdateWindow(hwnd);
مثل تغییر سایز یا همین مخفی کردنش احتیاج به یک هندل داریم.
من مثال رو از این لینک برداشتم، این سایت برای شروع برنامه نویسی win32 منبع خوبیه،
بد نیست قسمت های دیگشم ببینید.
شاد باشیدکد:http://www.winprog.org/tutorial/simple_window.html
سلام
خیلی ممنون از کمکتون
وقتی برنامه رو تو dev-c++ اجرا می کنم یه پنجره cmd علاوه بر اون پنجره سفیده هست. منظور من اینه که اونو چجوری پاک کنیم؟
سلام
الان اون کد رو وقتی تو یه project اجرا کردم دبگه اون پنجره نیومد.
ممنون
دلیل نشون دادن اون پنجره cmd این بود که نوع پروژه تون و Windows Console انتخاب کرده بودیننقل قول:
قتی برنامه رو تو dev-c++ اجرا می کنم یه پنجره cmd علاوه بر اون پنجره سفیده هست