Yeni bir başlık gönderCevap gönder 1. sayfa (Toplam 1 sayfa)   [ 9 mesaj ]
Yazar Mesaj
 Mesaj Başlığı: Intellicad'in Main Frame'ine ulaşmak
MesajGönderilme zamanı: 05 Oca 2004 20:05 

Kayıt: 26 Ağu 2003 15:56
Mesajlar: 13
Konum:
Daha önceki konuda da yanit olarak yazdim ama, belki dikkat
cekmemistir diye yeni konu olarak sorumu yineliyorum.


Benim intellicadin main frame ine ulasmam gerekiyor, bu MFC deki
CMDIFrameWnd classina ait bir pointer seklinde olursa cok güzel olur.
Örneğin AutoCAD in ObjArx inde bu işlemi görmek için


<pre id=code><font face=courier size=2 id=code> CMDIFrameWnd* acedGetAcadFrame(); </font id=code></pre id=code>
şeklinde bir global fonksiyon bulunmakta. Sds de buna benzer ne var.


SDS deki:
<pre id=code><font face=courier size=2 id=code> CWnd* WndMain = CWnd::FromHandle(sds_getmainhwnd()); </font id=code></pre id=code>

WndMain tam olarak neye karsilik geliyor. Ben bunun intellicadin Main
Frame ine pointer oldugunu zannediyordum ancak sanirim oyle degil.
Gene yukardaki sds fonsiyonuna benziyen sds_getviewhwnd(); kime
return ediyor.


İyi günler dilerim







efeguney tarafından 05/01/2004 18:09:19 tarihinde değiştirildi

efeguney tarafından 05/01/2004 18:16:33 tarihinde değiştirildi


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 05 Oca 2004 20:48 

Kayıt: 18 Kas 2003 22:53
Mesajlar: 18
Konum: Turkey
Merhaba

Modless için
CWnd* WndMain = CWnd::FromHandle(sds_getmainhwnd());

//Docking için Bu şekilde docking için deneyebilirsiniz....
CMDIFrameWnd::FromHandle(sds_getmainhwnd());

Benim bildiğim kadarıyla;
CMDIFrameWnd(IntelliCAD Mainwindow)->m_hWnd=sds_getmainhwnd()
Bu arada siz autoCAD'de docking yaptınız mı?
Yukarıdaki fonksiyonu kullanarak. moddless ve docking dialog kutularını üretebilirsiniz.

Modless üretimi:

Class CDlg public CDialog
{
BOOL CreateEx(CWnd* pParentWnd, LPCTSTR lpszTemplateName, UINT nStyle, UINT nID);

......

}
CDlg *g_ModlessDialog;

int Modless
{
g_pModless=new CDlg();
g_pModless->CreateEx(CWnd::FromHandle(sds_getmainhwnd )),"Merhaba",CBRS_TOP,IDD_DIALOG1);

}

Şeklinde modless yapabilirsin aynı yolla dockin de yapabilirsin.
Şayet viewhwnd sini almak istersen ki bu da senin işine yaramaz sadece bitmap işlemleri uygulayabilirsin.
AutoCAD de MFC de kullandığın herşeyi IntelliCAD'de de kullanabilirsin...


Marketçi.......


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 05 Oca 2004 21:12 

Kayıt: 18 Kas 2003 22:53
Mesajlar: 18
Konum: Turkey
Tekrar merhaba,
Sayın Efe Guney, nelerle uraşıyon galiba siz dockin veya modless kutusun da siz nesnelerin özelliklerinin gelmesini istiyorsunuz ve özelliklerinin click halinde mudahale etmek istiyorsunuz değil mi şimdi benim anladığım kadarıyla bu şekilde şimdi....

Siz nelerle uraşıyonuz ne aplikasyonu yazıyonuz tam olarak bana anlatırmnısınız şayet gizlilik derecesi varsa bana email atabilirsiniz.
Daha önce autocad'de arx yazdınız mı yazdıysanız bana email atabilmeniz mümkün mü reactolu ve dockingli örneğinizi.(Autocad'in lib ve header file'larıda olsun.
Ben şu an ARX'in üstünde bir teknolojiyi intelliCAD'e getirmekle meşgulum. Ayrıca rendering ve bir aplikasyonu yenilemekle meşgul olduğum için benim ve sizin için gerekli olan komutlarıda external yapabilirim.
Bu arada sizin tam olarak intelliCAD'den ne istediğinizi anlatmanız gerekiyor bunun için sizden gerekli örnek dosyalarınızla beraber bir rapor verebilirmisiniz.Bu arada yapacağınız bu program sadece siz mi yoksa diğer kullanıcılarınız da olacak mı bu konuda da Suha(Manager) bey danışmanız gerekiyor.
Şayet sizin source'tan dışarı çıkarmamızı istediğiniz fonksizyonlarınız varsa bunları sds.lib'e ilave edebiliriz. Bunları yukarıdakilerle beraber Suha(Manager) bey'e iletirseniz sevinirim.

Süha bey size modless konusun da bir örnek gönderecek.........

Murat KAPLAN
Adeko GROUP


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 06 Oca 2004 12:58 

Kayıt: 26 Ağu 2003 15:56
Mesajlar: 13
Konum:
Ilginiz icin tesekkur ederim, Ben Intellicad'de Yapısal Analiz ve Tasarim işlemleri gerceklestiren bir applikasyon hazirlamaktayim, su anda uzay kafesleri icin autocad altinda calisan bir uygulamamiz var, ancak amacimiz onu biraz daha ileriye goturup daha kapsamli bir hale getirmek. Ayrintilari isverenimle konustuktan sora size iletirim.

Benim modeless dialog boxlarla sorunum yok onlari zaten gostertebiliyorum, sadece mevcut modal dialog lari callback fonksiyonunun icinde göstermenin bir yolu var mi diye merak etmistim, sanirim yokmus.

Su andaki temel sorunum Intellicad Main Framine ulasmak;

cevabinizda belirttiginiz:
CMDIFrameWnd::FromHandle(sds_getmainhwnd());

daki CMDIFrameWnd::FromHandle(); fonksiyonu CWnd::FromHandle();
fonksiyonuyla aynidir. CMDIFrameWnd classi CWnd den türetildigi icin
CWnd::FromHandle() fonksiyonunu kullanabilir. Yani yazilan iki fonksiyonda aslinda aynidir ve CWnd* ye return ederler.

Ben CWnd* yi CMDIFrameWnd* a cast etmeyi de denedim ancak gene de basarili olamadim.

<pre id=code><font face=courier size=2 id=code>
CMDIFrameWnd* MainWnd =(CMDIFrameWnd*) CWnd::FromHandle(sds_getmainhwnd());
</font id=code></pre id=code>

Nitekim yukardaki casting den sonra alttaki satiri yazinca, EnableDocking() fonksiyonu CMDIFrameWnd* un CFrameWnd den türemis bir class'in objesi olmadigi icin assertion failure veriyor.
<pre id=code><font face=courier size=2 id=code>
MainWnd->EnableDocking(CBRS_ALIGN_LEFT);
</font id=code></pre id=code>


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 08 Oca 2004 22:31 

Kayıt: 18 Kas 2003 22:53
Mesajlar: 18
Konum: Turkey
Merhaba,

Bende burada takılmıştım lakin
ONCREATE() fonksiyonun içinde

...->EnbleDocking(...)
fonksiyonun da CFRameWnd hwnd'si olmadığı nı söylüyor....
Lakin sds_getmainhwnd()

Icad source'ta

CMainWindow public :CMDIFrameWnd 'den türerilmiştir.

extern CMainWindow *SDS_CMAINWINDOW;

HWND sds_getmainhwnd()
{
.....
if (SDS_CMAINWINDOW)
return SDS_CMAINWINDOW->m_hWnd;

return NULL;
}


Bana demo bir cd göndermeniz mümkün mü?
Siz AutoCAD'de docking yaptınız mı diye sormuştum.
Bir de siz aplikasyonlarınızı intelliCAD'e mi geçiriyorsunuz.Şayet böyle ise lütfen detaylar konusun da bizimle temasa geçermisiniz.
Daha önceki cevabımda bunları yazmıştım lakin cevap vermediniz.


İçtenliklerimle....

Murat KAPLAN
ADeko GROUP










<b></b><b></b>


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 09 Oca 2004 04:01 

Kayıt: 18 Kas 2003 22:53
Mesajlar: 18
Konum: Turkey
CMDI::FormHandel(...)
Konusu ise bir yerde kod da bu şklide kullanılmıştı sadece bir belki işe yarar düşüncesi ile tam test etmemeiştim..

Şayet docking sizin aplikasyonunuz için olmassa olmaz bir konumda ise bana biraz zaman verirseniz size bu konuyla ilgili yardım edebilirim.Ayrıca sizin aplikasyonunuz için ihtiyaç duyacağınız
her fonksiyonda yardımcı olabilirim.

EnableDockin(....) hatasının MFC'de kaynaklanıp kaynaklanmadığına da bir bakarsanız sevinirim.

İçtenliklerimle

Murat KAPLAN
ADeko GROUP


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 09 Oca 2004 13:56 

Kayıt: 26 Ağu 2003 15:56
Mesajlar: 13
Konum:
Öncelikle ilginiz ve cabalariniz icin tesekkürler;

Ben uzun zamandir Autocad le ugrasmiyorum, Autocad deki mevcut uygulamayi da ben yazmadim; su anda onu intellicada gecirmekten cok Intellicadde daha genel kapsamli bir tasarim/analiz programi icin altyapi olusturmakla mesgulum. Onumuzdeki birkac gun icindede Autocaddeki uygulamayi intellicada aktarmaya basliyacagim. Autocaddeki uygulamada reactor ve docking suanda bulunmamakta.

Autocad de bizzat docking islemini gerceklestirmeme ragmen, kolayca gerceklestirebilecegime inaniyorum cunku CMDIFrameWnd* MainFrame; gibi pointiri belli olan genel bir MFC uygulamasinda bunu gerceklestirebiliyorum. ObjArx de direk CMDIFrameWnd* MainFrame'e return eden bir fonksiyon oldugunu bildigim icin bu sayede docking islemini gerceklestirebilecegimi umuyorum.

Benim de kendi yazdigim servis fonksiyonlarim ver (genel amacli fonksiyonlar) ancak sizin hali hazirda yazilmis fonksiyonlariniz benim zaman kazanamama neden olur; onlari gonderirseniz tabiki de sevinirim, ben de kendi yazdiklarimi eger isinize yariyacaksa sizinle paylasabilirim. sayet gonderecekseniz [url]efe@ce.metu.edu.tr[/url] adresine yollamanizi tercih ederim. Genel amacla kullandiginiz ne varsa gonderirseniz cok sevinirim, cunku intellicaddeki tüm imkanlari kullaniyoruz. Bir de Suha Beyle de konustugum gibi intellicadin source codundan docking le ilgili kisim isime yarayabilir.

Uygulamamaiz su anda size demo seklinde gonderebilecegimiz kadar hazir degil, ama 1-2 ay icersinde size yollayacak hale getirebilirim.


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 09 Oca 2004 17:50 

Kayıt: 26 Ağu 2003 15:56
Mesajlar: 13
Konum:
Bu arada autocad'de dockable window yaptim, bakmak isterseniz email adresinize yollayabilirim.


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 09 Oca 2004 18:24 

Kayıt: 18 Kas 2003 22:53
Mesajlar: 18
Konum: Turkey
Libleri ve header dosyalarıyla murat@adeko.com.tr'a gönderebilirmisiniz.

Dolayısıyla ne gibi farklılıklar varsa bende ilave edeyim source'a

içtenliklerimle ...

Murat KAPLAN







magnamana tarafından 09/01/2004 16:27:53 tarihinde değiştirildi


Başa Dön
 Profil  
 
Eskiden itibaren mesajları göster:  Sırala  
Yeni bir başlık gönderCevap gönder 1. sayfa (Toplam 1 sayfa)   [ 9 mesaj ]


Kimler çevrimiçi

Bu forumu gezen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 13 misafir


Bu foruma yeni başlıklar gönderemezsiniz
Bu forumdaki başlıklara cevap veremezsiniz
Bu forumdaki mesajlarınızı düzenleyemezsiniz
Bu forumdaki mesajlarınızı silemezsiniz
Bu foruma eklentiler gönderemezsiniz

Aranacak:
Geçiş yap:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
610nm Style by Daniel St. Jules of Gamexe.net


Türkçe çeviri: phpBB Türkiye