|
Hi,
Here's a rather short answer. You can use ADO very easily to do this.
Check out CP for ADO tutorials.
|
|
|
|
|
I'm just starting with C++, and I'm trying to open a new DIALOG by pressing on a BUTTON on the first Dialog, can someone tell me how to do this??
|
|
|
|
|
CMyDialog::OnNewDlg()
{
CAnotherDlg anotherDlg;
anotherDlg.DoModal();
}
---
"every year we invent better idiot proof systems and every year they invent better idiots"
|
|
|
|
|
I have slight problem
Ive just made a small program, and I want to distribute it to all of my friends, the problem is it keeps saying on their machines that it needs dlls. They are the MFC**.dll s and im not sure what to do. I could send them all the dlls needed, but this would take ages. Is there anyway I can compile the dlls it requires into the program?
|
|
|
|
|
Go into the project settings, and on the first tab, you can select "Use MFC in a static library"
- Anders
|
|
|
|
|
thanks, but there is only one option and that is it "use MFC in shared DLL"
anyone know why?
|
|
|
|
|
Not all versions of VC have the option to statically link MFC. You can use the Dependency Viewer (in the MSVC program group, in the VC tools subgroup) to see which DLLs your program uses. It will, at the very least, be MFC42.DLL and MSVCRT.DLL, and maybe others depending on what classes you use.
--Mike--
http://home.inreach.com/mdunn/
The preferred snack of 4 out of 5 Lounge readers.
|
|
|
|
|
Hi
sure - in your project settings, step 3 of 4, just say that you want to statically link to the MFC library.
Kurt
|
|
|
|
|
Is there a way I could compile them within my exe without using the command in the properties of the project?
I have found the 3 dlls it uses, can I compile these indirectly into the program?
I found this in the MSDN cd:
The simplest and safest approach is to include the localized MFC resources in your application or DLL itself (or its satellite DLL if you are using one). This avoids the problems of installing MFC4xLOC.DLL properly. To do so, you follow the same instructions for the static case given above (setting the RC command line properly to point to the localized resources), except that you must also remove the /D_AFXDLL define that was added by AppWizard. When /D_AFXDLL is defined, AFXRES.H (and the other MFC RC files) don’t actually define any resources (because they will be pulled from the MFC DLLs instead).
(technical note 57)
Im not sure what it means though, could it be usefull to me?
thanks
tom
|
|
|
|
|
Why doesn't the following code work?
class abc {
public:
int var;
class xyz {
public:
void func() {
var = 10; // I can't access the variable!
}
};
};
Thanks!
Erik
|
|
|
|
|
that doesn't work cause the class xyz is not a child. You say it can't access the parent but abc is not a parent class. what you really have is something like this:
<br />
class xyz<br />
{<br />
public:<br />
void func() { var = 10; }<br />
};<br />
<br />
class abc<br />
{<br />
public:<br />
int var;<br />
xyz m_xyzVariable.<br />
};<br />
What you have is a member variable and not inheritance. What you need is to make class xyz look like this if you want it to be a child.
<br />
<br />
class xyz : public abc<br />
{<br />
public:<br />
void func() { var = 10; }<br />
};<br />
<br />
That should work for you.
Joseph Dempsey
jdempsey@cox.rr.com
Joseph.Dempsey@thermobio.com
"Software Engineering is a race between the programmers, trying to make bigger and better fool-proof software, and the universe trying to make bigger fools. So far the Universe in winning."
--anonymous
|
|
|
|
|
I am embarking on a project using WTL/Win32, mainly for the purpose of learning them, and I'm a little stuck.
It's a program designed to read MP3 tags recursively from directories, display the results in a CListCtrl and allow me to edit them. Now, I have a WTL project together, I have a dialog box that shows a CListCtrl and fills it with the appropriate data. My problem is, how do I derive from the list control to alter it's behaviour, and how do I intercept messages sent to the list control ( key down, mouse down, etc. ). I've been looking in AtlCtrls.h, at CListViewCtrlT, which LOOKS like the answer to my prayers, but I can't figure out how to use it.
Thanks
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
class CMyDialog : CDialogImpl<CMyDialog>
{
protected:
CContainedWindowT<CListViewCtrl> m_listCtrl;
public:
CMyDialog() : m_listCtrl(this, 1) {}
BEGIN_MSG_MAP(CMyDialog)
ALT_MSG_MAP(1)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetfocusList)
END_MSG_MAP()
};
To summarize: make a member variable in the dlg to represent the list ctrl. Subclass the list ctrl in OnInitDialog() , then put message handlers for the list in the ALT_MSG_MAP(1) section of the dlg's message map. The sample entry above declares a handler that's called when the list receives a WM_SETFOCUS message.
--Mike--
http://home.inreach.com/mdunn/
The preferred snack of 4 out of 5 Lounge readers.
|
|
|
|
|
Thank you SO much. Out of interest, do you find WTL an acceptable alternative for production code, or do you think I'm making the error of a lifetime ?
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
hmm... good question. I personally would be careful with WTL in production code. You should take a look at the WTL bug list to be sure there isn't anything that would affect your code.
--Mike--
http://home.inreach.com/mdunn/
The preferred snack of 4 out of 5 Lounge readers.
|
|
|
|
|
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
|
|
|
|
|