|
I have a small problem: I tried to do as you suggested, as follows
protected:
CContainedWindowT<clistviewctrl> m_listCtrl;
public:
enum { IDD = IDD_MAINDLG };
BEGIN_MSG_MAP(CMainDlg)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_SIZE, OnSize)
COMMAND_ID_HANDLER(ID_APP_ABOUT, OnAppAbout)
COMMAND_ID_HANDLER(IDOK, OnOK)
COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
COMMAND_ID_HANDLER(ID_FILE_BROWSE, OnBrowse)
ALT_MSG_MAP(1) // handlers for messages from the list ctrl
MESSAGE_HANDLER(WM_LBUTTONDOWN, OnListClick)
END_MSG_MAP()
LRESULT OnListClick(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
MessageBox("fdxgdfgdfg");
return 0;
}
then in OnInit
m_listCtrl.Attach(GetDlgItem(IDC_LIST));
I tried using SubclassWindow, but it crashed, as I may expect, because I'm not actually subclassing the window, I just want to catch messages to it. I may well have to subclass it down the track, but for now I just want it to work. Anyhow, m_listCtrl is now a member variable to my listctrl, I have verified this by using it to move the window in OnInit. However, my message is not being called. Can you see what I'm doing wrong ? I don't see how use of the alt map is being specified ?
Thanks
Christian
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
Where is SubclassWindow() crashing?
As for the ALT_MSG_MAP() question - the CContainedWindowT<> constructor takes 2 parameters - a CMessageMap* (normally this , meaning the dialog) and a number which is the alt map identifier. In my previous post, the constructor took 1 as the ID, so the ALT_MSG_MAP() macro took 1 as its parameter. If you had other controls, you would use other IDs for them - 2, 3, and so on.
--Mike--
http://home.inreach.com/mdunn/
The preferred snack of 4 out of 5 Lounge readers.
|
|
|
|
|
The code below is supposed to construct a cursor consisting of an arrow and a character from a font. It is part of a control that is in and extension DLL which is implicitly linked to the application. If 'sort' of works but seems to lose the 'AND' bitmap.
Any ideas??
HCURSOR CCharacterControl::MakeCharCursor(BYTE bCh)
{
ASSERT(this);
CPaintDC dc(this); // device context for painting
CDC dcTemp;
dcTemp.CreateCompatibleDC(&dc); // temp dc for rendering
int nCurX = GetSystemMetrics(SM_CXCURSOR);
int nCurY = GetSystemMetrics(SM_CYCURSOR);
CBitmap bitmap1, bitmap2, *pTempOld;
// Allocate memory for masks
int nByteArea = (nCurX/8) * nCurY;
TRACE("%s Cursor W = %d, H = %d\n",__FILE__,nCurX,nCurY);
HANDLE lpAnd = new HANDLE [nByteArea];
HANDLE lpXOR = new HANDLE [nByteArea];
bitmap1.LoadBitmap(IDB_CURSORAND);
pTempOld = dcTemp.SelectObject(&bitmap1);
CFont mFont;
mFont.CreateFont(28, 0, 0, 0, 400, 0, 0, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FIXED_PITCH | FF_SWISS,
(LPCSTR)m_szFontName);
char szOut[3] = "";
szOut[0] = (char)bCh;
CFont *pFontOld = dcTemp.SelectObject(&mFont);
CRect rect(0, 0, nCurX, nCurY);
dcTemp.DrawText(szOut, 1, rect, DT_SINGLELINE | DT_RIGHT | DT_BOTTOM | DT_NOPREFIX);
dcTemp.SelectObject(pFontOld);
bitmap1.GetBitmapBits(nByteArea, lpAnd);
bitmap2.LoadBitmap(IDB_CURSORXOR);
dcTemp.SelectObject(&bitmap2);
bitmap2.GetBitmapBits(nByteArea, lpXOR);
HCURSOR hCur = CreateCursor(AfxGetInstanceHandle(), 0, 0, nCurX, nCurY, lpAnd, lpXOR);
dcTemp.SelectObject(pTempOld);
delete lpAnd;
delete lpXOR;
return hCur;
}
Happy programming!!
|
|
|
|
|
Hi,
I was wondering how I can position my dialog to be on the right of the screen not in the middle of it.
Also, I tried using SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE); it works but it won't put the dialog in front of my game window. This is how I want it http://www.settlers.net/global.jpg see that global chat thing, that is just a cut and paste, but i want it to be like that.
Can you help???
Thanks
Ashman
|
|
|
|
|
You can use GetSystemMetrics to find out where the right of the screen is. As for your window, if SetWindowPos won't do it, I'd suggest that you have serious problems ;0) The chat thing in the URL - is it part of the program, or not ? If it is, I'd suggest that the progam may be using DX and taking exclusive control of windows, or something similar. If not, can you find out from the people who provide it how *they* did it ?
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
I am creating an animation control for display in the upper right hand corner of my app - it's a busy indicator.
m_wndAnimate.Create(WS_CHILD | WS_VISIBLE | WS_DLGFRAME, CRect(0, 0, 10, 10), this, IDC_ANIMATE_CONTROL );
Voila. Note I am not using CReBar like most people do, I just create it and position it in the OnSize() - it's a lengthy explanation so don't ask.
I am trying to receive a click message from inside the control (I've derived a class CMyAnimateCtrl) and can't get a peep. I've overridden WindowProc and PreTranslateMessage() and nada. Anyone know a tricky way to find out that someone has clicked the animation?
Thanks!
|
|
|
|
|
I am creating an animation control for display in the upper right hand corner of my app - it's a busy indicator.
m_wndAnimate.Create(WS_CHILD | WS_VISIBLE | WS_DLGFRAME, CRect(0, 0, 10, 10), this, IDC_ANIMATE_CONTROL );
Voila. Note I am not using CReBar like most people do, I just create it and position it in the OnSize() - it's a lengthy explanation so don't ask.
I am trying to receive a click message from inside the control (I've derived a class CMyAnimateCtrl) and can't get a peep. I've overridden WindowProc and PreTranslateMessage() and nada. Anyone know a tricky way to find out that someone has clicked the animation?
Thanks!
|
|
|
|
|
I need to perfom system polices on the remote computers in LAN. I mean hiding folders, managing drive access, process lookup, remote shutdown and restart and more. Any kind of information will be useful !
|
|
|
|
|
HI,
Do you know, who can I create child window, which is in MS InterDev 6.0. If i was select New File / HTML
(I think flat tab, which is botton left )
(Please send the answer to libor.bares@seznam.cz)
Thank you !!!
LB
|
|
|
|
|
HI,
Do you know, who can I create child window, which is in MS InterDev 6.0. If i was select New File / HTML
(I think flat tab, which is botton left )
(Please send the answer to libor.bares@seznam.cz)
Thank you !!!
LB
|
|
|
|
|
<<< In the name of GOD >>>
Hi.
I really didn't understand,
HOW CAN I USE OF InstallShield FOR CREATE SETUP DISK.
If possible, create full project by installshield, and send to me.
I really need it ...
Please, please, please ...
Hadi Rezaie
|
|
|
|
|
The trick is you need to create your program groups twice - once to say what they are, and once to say which ones to use. I remember hating InstallShield until I figured that out. Setup Factory is the best bar none for easy to use setups. Wise/InstallShield are more flexible, but also more complex and unnecessarily so IMHO for the majority of installs.
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
<<< In the name of GOD >>>
Hi.
How can i use of View in controls ?
For example using CEditView inside CEdit or using CTreeCtrl inside CTreeView ...
I read something from MSDN, I know that i must use GetEditCtrl and GetTreeCtrl function.
But i can't use of thease functions, please write good example.
Thanks.
Hadi Rezaie
|
|
|
|
|
<<< In the name of GOD >>>
Hi all.
I want to know, how can i learning Visual C++ very well ?
In Iran nothing any good book and teacher that know VC++.
So i use MSDN help ...
But i haven't good start, it mean that for learning VC++ i have far flung ways, for example:
Sometimes i read API functions,
Or i read MFC,
Or i read some article and ... etc.
Now, please introduce to me secure and best way to learning VC++.
I need good skill of programmers.
Hadi Rezaie
|
|
|
|
|
Buy MFC Unleashed from SAMS. C++ Unleashed is also a good read, and Visual C++ Unleashed is all right, but I don't own it, because by the time I saw it I was past it ( no, I do not work for the publisher ;0)
The MFC Answer Book by Eugene Kain is a must, it answers about 60% of the questions you have been asking, and a lot you're likely to. VC++ MFC Extensions by Example is similar, but a lot of the answers in that book are just plain ugly ways of doing things. However, it *does* answer things Eugene's book does not.
The best book I bought recently would be 'Mastering Algorythms in C' by Kyle Loudon, or 'Windows Graphics Programming' by Feng Yuan, both thorough in there coverage of their respective areas.
Basically, I'm saying you should get over to FatBrain and break out the plastic. And make sure you don't think you can *master* C++, all you can do is join us all on the journey....
And of course, keep asking questions ;0)
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
Thanks a lot for your reply ...
But how can i buy thease books ?
Hadi Rezaie
|
|
|
|
|
fatbrain.com lets you buy books online with a credit card
---
"every year we invent better idiot proof systems and every year they invent better idiots"
|
|
|
|
|
Now, how can i get Credit Card ?
Hadi Rezaie
|
|
|
|
|
Hi,
One of the best books on the subject is David Kruglinsky's book Inside Visual C++. I'm sure you'll really get a head start in VC++ development after you read this book. I know I did!
|
|
|
|
|
<<< In the name of GOD >>>
I have question about Edit box.
I want to create edit box by multilines property.
I haven't any problem, but when i click on TAB key,
program select all text in the Edit box !!!
How can i fix it ?
Hadi Rezaie
|
|
|
|
|
Hi,
I wanna to create a flat listbox on dialog,
about flat, It hasn't solid frame.
Please particularize its creation course.
It very good you have source codes.
Thanks
jeffreyren
|
|
|
|
|
Hi all,
A friend sent me the Xceed FTP Library files to include in my MFC app. I run a server, www.settlers.net and I host other sites. I want this program I am making to allow the people who are hosted to connect to my FTP but not go above the folder they have been assigned.
This Xceed thingy has a liscence on it and I dont even know how to set it up. If you know of an easier way or another way of making an FTP client like this, please reply to this message.
Or if you know how to set up this Xceed thing, please...I require your assistance!
Thanks
Ashley Rowe
www.settlers.net
|
|
|
|
|
How to forbid the floppy drive access. I'm writing an Internet club shell and I need a managment for remote computers.
|
|
|
|
|
Does anybody know how to retrieve a WIN-message that indicates the scrollbar of
a Listbox having been scrolled up or down?
I have a modeless dialog with 6 listboxes (side by side) that get the V-Scrollbar
automatically when there are more Items to display than the LBs can show at once.
All lists do always have the same lenght due to the behaviour of my data.
What I want is to keep the LBs synchron - I mean that the TOPINDEX is the same
in all my boxes. Even when I move the scrollbar I wanna keep them in sync.
That works fine with the LBN_SELCHANGE for every box:
void CMyClass::OnSelchangeList01()
{
int iResult;
iResult = m_List01.GetCurSel();
m_List01.SetCurSel(iResult);
m_List02.SetCurSel(iResult);
m_List03.SetCurSel(iResult);
m_List04.SetCurSel(iResult);
m_List05.SetCurSel(iResult);
m_List06.SetCurSel(iResult);
iResult = m_List01.GetTopIndex();
m_List01.SetTopIndex();
m_List02.SetTopIndex();
m_List03.SetTopIndex();
m_List04.SetTopIndex();
m_List05.SetTopIndex();
m_List06.SetTopIndex();
}
The same I do for
OnSelchangeList02();
OnSelchangeList03();
OnSelchangeList04();
OnSelchangeList05();
OnSelchangeList06();
I can select whatever I want in whatever LB - with the mouse or the arrow-keys. The TopIndex
of every LB is the same and the selected items (highlighted) appear side by side.
So far so good -
ONLY after moving the vertical scrollbar the LBs are out of sync because I cannot get any
message of the scrollbar showing me that the visual state of the LB has changed and though
giving me the possibility to use the SetTopIndex()-function like above in the LBN_SELCHANGE
message handler of my LBs...
I tried it with CWnd::OnVScroll() but I couldn't find a way to retrieve a notification
from my Listbox-scrollbars out of this function...
All those nice SB_BOTTOM, SB_TOP, SB_THUMBTRACK - and I cannot access them......
So any Ideas out there...?
Manfred
---
Programming is knowing...
|
|
|
|
|
Maybe you could use a multi-column list?
Daniel
"das leid schlaft in der maschine" -Einstürzende Neubauten
|
|
|
|
|