نمایش نتایج 1 تا 6 از 6

نام تاپیک: hwnd

  1. #1
    کاربر دائمی آواتار کم حوصله
    تاریخ عضویت
    مرداد 1382
    محل زندگی
    ایران - مشهد
    پست
    962

    hwnd

    سلام
    آقا این hwnd چیه به چه درد می خورد اصلا کاربردش چیه :(

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    تا اونجایی که من بلدم:
    هر پنجره ای که توی ویندوز باز میشه توسط ویندوز یک کد به اون داده میشه که به این کد هندل یا گیره اون پنجره گفته میشه.
    انجام هر عملیاتی روی این پنجره توسط پیغامهایی انجام میشه که ویندوز اونهارو از طریق این هندل به پنجره موردنظر میفرسته.
    hWnd هم همین هندل هست. h مخفف Handle که پیشوند همه هندلهاست (چون هندلهای دیگه ای هم توی ویندوز هست. مثل هندل به DC یا هندل به ایکون و بیتمپ و ...)
    Wnd هم که مخفف کلمه Window.
    نا گفته نمونه که از طریق این هندلها میشه کارهای جالبی رو روی پنجره ها انجام داد. یک نمونه خیلی کوچیکش همونیه که من توی MessageBox فارسی انجام دادم (نمیدونم شما تا حالا دیدینش یا نه؟)
    به هر حال این اون چیزی بود که من بلد بودم. شاید دوستان دیگه اطلاعات کاملتری هم داشته باشند.

  3. #3
    کاربر دائمی آواتار کم حوصله
    تاریخ عضویت
    مرداد 1382
    محل زندگی
    ایران - مشهد
    پست
    962
    اقا ببخشید ها
    این هندلی که گفتید چه جوری میشه کنترلش کرد و مقدارش را بدست آورد و آیا در برنامه های دیگر هم ایم هندل وجود دارد و اگر دارد چه جور می توان بدستش آورد یا نه فقط مختص وبی است :oops:

  4. #4
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    توی برنامه خودتون که Handle همون hWnd هست.
    برای بدست آوردن هندل برنامه های دیگه نیاز به استفاده از توابع API مختلف دارید. بسته به اینکه چه کاری بخواهید انجام بدید، باید از یک روش خاص استفاده کنید.
    مثلا با استفاده از FindWindow میتونید هندل یک پنجره رو از طریق متن لبه اون به دست بیارید که این ساده ترین کاره. در برخی موارد باید از Hook و SubClass استفاده کنید که تا حدودی پیچیده تره.
    برای ارسال پیغام به هندل هم برای بعضی پیغامها توابع مخصوص وجود داره. برای بقیه هم باید از SendMessage استفاده کنید.
    به هر حال اگه توضیحات بیشتری خواستید من در حد اطلاعات خودم در خدمتتون هستم

  5. #5
    کاربر دائمی آواتار کم حوصله
    تاریخ عضویت
    مرداد 1382
    محل زندگی
    ایران - مشهد
    پست
    962
    سلام می بخشید من اینقدر می پرسم ها
    ببینید من تا حالا تقریبا از هر 10 تاپیک تو 6 تاش این کلمه رادیدم و نفهمیدم چیه یکم iq من در این مورد پایینه :cry:
    فکر میکنم کاربرد های خوب مفید و زیادی هم داشته باشه
    حالا اگر لطف کنید و یکم کامل و مفید در مورد نحوه استفاده از آن و علت استفاده و مزیت استفاده و مکان استفاده از آن توضیح بدید شرمنده می شوم :oops:
    ضمنا اگر هم یک نمونه از استفاده های آن را با مثال اینجا attach کنید دیگر محشر می شود
    انشا... هروز پر بار تر گردید تا برجسته تر باشید
    با کمال تشکر فراوان :wink:

  6. #6
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    ببین دوست عزیز. در حقیقت هندل هر پنجره هویت اون پنجره توی محیط ویندوزه. پنجره که میگم اعم از فرمها و دیالوگها و کنترلهاییه که به صورت فرزند روی اونها قرار می گیرند.
    فرضا شما وقتی که متن یک TextBox رو توی VB تنظیم میکنید یک پیغام WM_SETTEXT به اون TextBox فرستاده میشه. شما فرستاده شدن این پیغام رو اصلا متوجه نمیشید. چون کنترل TextBox برای شما طوری طراحی شده که فقط یک متن رو جلوی خصوصیت Text اون مینویسید و تمام. ولی در پشت صحنه این پیغام به کنترل Edit فرستاده میشه. این فقط یک مثال بود. تمام عملیاتی که در سطح ویندوز روی پنجره ها انجام میشه بوسیله همین سیستم پیغام رسانی انجام میشه. به عنوان مثال میتونید این کد رو امتحان کنید:
    Private Const WM_SETTEXT = &HC
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

    Private Sub Form_Load()
    SendMessage Text1.hwnd, WM_SETTEXT, 0, ByVal "ABBAS"
    End Sub

    اما گاهی اوقات پیش میاد که شما مجبورید یک پنجره رو دستکاری کنید که خارج از محیط برنامه خودتون هست. اون وقته که میتونید به عنوان یک برنامه نویس راسا اقدام به ارسال پیغام به اون کنید.
    یا گاهی اوقات پیش میاد که شما با استفاده از API میخواهید تغییراتی روی یک کنترل ایجاد کنید که طراحان VB یا طراح اون کنترلی که با اون کار میکنید، برای شما پیش بینی نکرده. هر کدوم از کنترلهای عمومی ویندوز دهها ویژگی و خاصیت دارند. فرضا کنترل Edit. این کنترل دارای بسیاری از ویژگیهاست که امکان اینکه همه اونها رو در قالب شیی TextBox توی VB قرار بدن نبوده. شما فرضا بیایید توی محیط .NET یا VC++‎. بسیاری از این ویژگیهارو ملاحظه میکنید (حتی اونجا هم همه خصوصیات پشتیبانی نشده). با استفاده از تابع API مربوطه میتونید از اون ویژگیها توی محیط VB هم بهره بگیرید.
    اما چه جوری میخواهید بین اون API و کنترلی که دارید ارتباط برقرار کنید. قطعا این کار از طریق هندل اون کنترل انجام خواهد شد.
    بنابراین اگر کمی به دنیای API قدم بگذارید، متوجه میشوید که هندل پنجره ها جزو ملزومات کار با بسیاری از توابع خواهد بود.
    البته همون طوری که گفتم توی ویندوز هندلهای دیگه ای هم داریم. مثل hDC که هندل به محتوای ابزار یا DC پنجره هاست یا hIcon که هندل به ایکونهاست و ...
    امیدوارم که چیزایی که گفتم به دردت بخوره و اگر بازم مطلبی بود در خدمت هستم.

تاپیک های مشابه

  1. hwnd در بعضی کنترلها؟
    نوشته شده توسط riyahiyan در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: سه شنبه 15 فروردین 1385, 11:02 صبح
  2. سوال: عکس گرفتن از یک پنچره ای که hWnd آن را داریم.
    نوشته شده توسط Hamedm در بخش برنامه نویسی در 6 VB
    پاسخ: 5
    آخرین پست: چهارشنبه 21 بهمن 1383, 07:30 صبح
  3. HWND در فاکس پرو
    نوشته شده توسط rezaTavak در بخش Foxpro
    پاسخ: 5
    آخرین پست: یک شنبه 29 آذر 1383, 12:22 عصر
  4. معادل hwnd در VB.NET
    نوشته شده توسط bashir_nashi در بخش VB.NET
    پاسخ: 1
    آخرین پست: چهارشنبه 13 آبان 1383, 16:39 عصر
  5. نیاز فوری به کمک دوستان hWnd کمـــــــــــــــــــک
    نوشته شده توسط سعید قدیری مقدم در بخش VB.NET
    پاسخ: 3
    آخرین پست: شنبه 04 مرداد 1382, 08:57 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •