|
when mdi application run,child window is default miximize size window.
how i can do???
|
|
|
|
|
BOOL maximized;
CMDIChildWnd* child = MDIGetActive(&maximized);
if (child && (maximized || child->IsIconic()))
child->MDIRestore();
Ninety-eight percent of the thrill comes from knowing that the thing you designed works, and works almost the way you expected it would. If that happens, part of you is in that machine.
|
|
|
|
|
Dear friends,
I am using std::map. I want to give std::string as a key. But whenever i am giving std::string as a key, compiler starts giving horrible errors. I checked both in VC 6.0 and VC 7.0. Here is the program:
#include <iostream>
#include <map>
using std::string;
int main(int argc, char* argv[])
{
typedef std::map<string, string> DICTIONARY;
DICTIONARY m_dictionary;
std::pair< DICTIONARY::iterator, bool > result;
result = m_dictionary.insert(DICTIONARY::value_type("Sincere", "Honest"));
return 0;
}
One of the errors i am getting is:
(139): error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string'
Imtiaz
|
|
|
|
|
You forgot to add the following:
#include <string> After adding this #include , you still will get many C4786 warnings: these warnings are entirely harmless and can be supressed with
#pragma warning(disable:4786) // add this to the very beginning of your program These two changes will get you a clean compile. Best,
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
Want a Boost forum in Code Project? Vote here[^]!
|
|
|
|
|
hi all,
I connected with SQL Sever database using C++.I have used ODBC Connection.I added a class which based class is CRecordset..
The problem is when I open the Application it always displaying the "SQL Server Login" Dialog and ask the username and password.
How do I stop appearing that Login Dialog when I openning it?
please any one know this.please help me..
|
|
|
|
|
use CDatabase::noOdbcDialog as the second parameter in OpenEx() method.
Eg; extern CDatabase oDb;
extern CString csConnection;
oDb.OpenEx(csConnection, CDatabase::noOdbcDialog );
this will suppress the login dialog.
Ninety-eight percent of the thrill comes from knowing that the thing you designed works, and works almost the way you expected it would. If that happens, part of you is in that machine.
|
|
|
|
|
|
pero aqui, hablamos ingles...
so speak english with use, or stay into you grupo
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
Hi guys, Im working on an old-skool project which should be game in 0x13 Dos resolution which was 320 x 200, 256 colours, paletized. Can anyone tell me how it is possible to use this mode in windows (in VC++)?
Initializing was done easily and probably will be no problem, but drawing in this mode was done through direct memory access to 0xA000:0000 which will windows probably block in win app.
Or, is there any other way how to use paletized colour mode like this ? thanks
|
|
|
|
|
Bad news sorry,
most of the memory blocks and DOS interrupt tricks that old school 13h and modex programs used won't work under windows. However it is possible to still use the same techniques. If you allocate a framebuffer (similar to a double buffer), you should be able to then use SDL, DirectX or OpenGL to draw a textured quad to a full screen application.
On the other hand it may be just as easy to look at OpenGL, DirectX or SDL directly - they make everything so much simpler, and although they take a while to learn it's nothing too hard and there are plenty of websites offering assistance.
Most video cards still support these resolutions.
If you can keep you head when all about you
Are losing theirs and blaming it on you;
If you can dream - and not make dreams your master;
If you can think - and not make thoughts your aim;
Yours is the Earth and everything that's in it.
Rudyard Kipling
|
|
|
|
|
I have 2 files with information that I want to merge
Would read a file, parse the info into temporary memory, and then compare be faster than keep the file open and compare parse as it goes without creating large temporary memory to store the info temporary(this way I don't have spend time to clear the memory afterward)?
|
|
|
|
|
Well, if you intend to compare two big files then it is very clear that you should do it by allocating them in the RAM bu if the files are small there is no need
gabby
|
|
|
|
|
1) Can anybody give me an example of why they ever made a member mutable? I know what mutable is but couldn't give a real life reason for using one (I am not one for finding a problem to meet a solution!).
2) const_cast - allows you to, for example, remove the constness from a pointer, but if that pointer points to a const item, you can't change the value of the item. So all you can do is change what the pointer is pointing to. Same question as above - can anybody tell my why they have ever const_casted a const pointer and pointed it elsewhere!?!
(Yep - both interview questions....)
Regards
Angel
*********************************************
The sooner you fall behind, the longer you have to catch up.
|
|
|
|
|
1) I've used mutables in one instance, for capturing statistical data in a test class...
<br />
void MyTestClass::PerformTest() const<br />
{<br />
<br />
if (Test was successful)<br />
_successes++;<br />
else<br />
_failures++;<br />
}<br />
I also found an example in a book (Effective C++) of a String class that caches the string length each time the length member function is called using mutables:
<br />
.h<br />
--<br />
<br />
mutable bool lengthIsValid;<br />
mutable size_t dataLength;<br />
<br />
.cpp<br />
----<br />
<br />
size_t String::length() const<br />
{<br />
if (!lengthIsValid) {<br />
dataLength = strlen(data);
lengthIsValid = true;
}<br />
return dataLength;<br />
}<br />
2) The only time I've ever had to use const_cast (not a pointer to const data though), is when I came across a 3rd party issue...
void MyClass::DoSomething(LPCTSTR lpszData)
{
Win32ApiCall(const_cast<LPTSTR>(lpszData));
}
The Win32 call wanted a LPTSTR, even though the string wasn't changed by the function. I don't know what you'd call it - the dreaded 3rd party design flaw?
Pssst. You see that little light on your monitor? That's actually a government installed spy camera. Smile and wave to big brother!
|
|
|
|
|
Angel1058 wrote:
1) Can anybody give me an example of why they ever made a member mutable? I know what mutable is but couldn't give a real life reason for using one (I am not one for finding a problem to meet a solution!).
In general this occurs when a const object (object A) needs to call a non-const method of the mutable member variable (object B), specifically in a way that doesn't change the const-ness of the object A (did you get all that? ). Generally this occurs if pretty ugly situations - one example is: http://www.boost.org/doc/html/threads/faq.html#id635597[^]
From what I can remember reference counts are another example of this, the reference count still needs to be modified, even if the object is a const copy.
Angel1058 wrote:
2) const_cast - allows you to, for example, remove the constness from a pointer, but if that pointer points to a const item, you can't change the value of the item. So all you can do is change what the pointer is pointing to. Same question as above - can anybody tell my why they have ever const_casted a const pointer and pointed it elsewhere!?!
I can't think of a good example, but I would imagine something like the conversion of the pointer to something that allows read-only iteration through an array might be a possible answer.
If someone has gone to the effort of enforcing all that const-ness I'd think three times before performing the cast. In general const_cast should be avoided in the real world.
If you can keep you head when all about you
Are losing theirs and blaming it on you;
If you can dream - and not make dreams your master;
If you can think - and not make thoughts your aim;
Yours is the Earth and everything that's in it.
Rudyard Kipling
|
|
|
|
|
1: I was creating a LRU (least reciently used) cache. in pseudo code it was something like this (more complex, I left out some details):
classe my_cache {
public:
my_cache();
~my_cache();
bool write(int position,void *data);
bool read(int position,void *data);
protected:
void *data;
some_data_struct data_order mutable;
}
Because it is a LRU cache, read needs to update data_order everytime it is called to indicate that some data was used reciently. Otherwise write (from something non-const that points to this same class) might overwrite data that has been used reciently. Note that updating data_order does not change the external behavior of the class, to the user it is still const, as nothing was destroyed.
Unfortunatly the real world intruded when I tried to do that: I discovered my compiler doesn't support mutable. (it is nearly 10 years old, but there is good reason we have to use it)
I've never seen a need for 2, though I suppose it might exist.
|
|
|
|
|
I'm writing ExcelAutomation with VC ++.
I'm having problem to print out the sheets coz there are some sheets that were hidden.
Not a regular hidden.. but very hidden.
I double click on the file to open ( without using program), go to Format->Sheet-> hidden,unhidden.. and every options over there are in gray and diable to click.
So I cant' do it programmatically either to unhide or delete those very hidden sheets.
My question is how can I print the rest of the sheets?
This how I print.
<br />
VARIANT tv;<br />
VARIANT tv1;<br />
VARIANT tv2;<br />
VARIANT tv3;<br />
VARIANT tv4;<br />
VARIANT tv5;<br />
VARIANT tv6;<br />
VARIANT tv7;<br />
<br />
tv3.vt = VT_BOOL;<br />
tv3.iVal = false;
tv4.vt = VT_BSTR;<br />
tv4.bstrVal = printerName.AllocSysString();
tv5.vt = VT_BOOL; <br />
tv5.iVal = false;
tv6.vt = VT_BOOL;<br />
tv6.iVal = true;
tv7.vt = VT_BSTR;
tv7.bstrVal = CString("").AllocSysString();<br />
tv.vt = VT_I4;<br />
tv.lVal = 1;
<br />
sheets.PrintOut(covOptional, covOptional, covOptional, tv3, tv4, tv5, tv6, tv7 );<br />
|
|
|
|
|
Hi
You've developed 2 apps, one displays data and interacts with the user, the other displays data and interacts with a database. The user inputs data or corrects data on one and this new/changed data has to be sent to the other and optionally onto the dat....
...forget all that - what is the best method to get two apps to talk to each other on the same box (no multiple desktops / multiple logged on users etc), just two apps running at the same time.
I would have said DDE or is that DDEAD now?
Cheers
*********************************************
The sooner you fall behind, the longer you have to catch up.
|
|
|
|
|
The method you use depends on what your requirements are. Take a look a Interprocess Communication[^]. MSDN link for Platform SDK
This posting is provided "AS IS" with no warranties, and confers no rights.
Alex Korchemniy
|
|
|
|
|
pipes
Ninety-eight percent of the thrill comes from knowing that the thing you designed works, and works almost the way you expected it would. If that happens, part of you is in that machine.
|
|
|
|
|
Depends on the future possibilies vs the current budget.
If time and money is unlimited you designed a plug in architecture so you can change backends at well.
If portability is a concern, pipes are the easiest to port system to system. Just be careful to use only the most brain dead one-way pipes.
If the same box, or the no multiple users requirement might be relaxed latter, then you should consider network sockets because they are more easially extended.
Note, the above assumes the apps are already mostly done. If you are in the early design stages, then php (or .asp) is the way to go. Web browsers are pretty good database front ends, and (unless you do something stupid) allow the user to choose what platform to run on. This system also gives you, for almost free, things like security that you really should be considering, but is too complex for most people to bother with until it is too late.
|
|
|
|
|
I'm trying to let a user modify text in a CEdit control and remove the CEdit control when the user moves the focus and represent the text during the OnDraw with DrawText.
The technique works when using a fixed width font such as "Courier New" but when I try using a variable width font like "Arial", the CEdit likes to represent the text shifted to the right just a tad bit. This shift make the text appear to move when focus transitions occur.
One observation on a somewhat related note...
GetTextExtent returns the size of the text without the offset. If I resize the CEdit to what GetTextExtent gives me, the text does not fit with variable width fonts but fits just fine with fixed width fonts.
Does anyone know what this offset on the left side of the text is and why it doesn't happen using a fixed width font and what I can do to work around it?
Thanks,
Bob
|
|
|
|
|
Well, I came across an article that mentioned the
CEdit::SetMargins
and tried using this to set margins to zero and it fixed the problem.
|
|
|
|
|
Hi,
I am trying to create a Windows Application that uses the HTMLHelp API to launch a help file.(.CHM file). But am not able to associate the windows created by HtmlHelp(..) command to the message queue. It's not entering into the WindowsProcedure associated with that Application though I followed the HtmlHelp documentation. Please find the .cpp file attached. I feel am going wrong somewhere. Please help me out.
Very urgent help needed.
thanks in advance,
//////
Code: (windows application project type); include htmlhelp.lib
/////
/////////////////////////////////////////////////////////////////////////
// helpsysfinalwinapp.cpp : Defines the entry point for the application.
/////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "resource.h"
#include "stdio.h"
#include "windows.h"
#include "Htmlhelp.h"
#include "conio.h"
#include "stdlib.h"
#define MAX_LOADSTRING 100
#define ID_NOTIFICATION 4242
// Global Variables:
HINSTANCE hInst;
TCHAR szTitle[MAX_LOADSTRING]; // The title bar text
TCHAR szWindowClass[MAX_LOADSTRING];
HWND HwndDlg;
DWORD dwCookie = NULL;
// Foward declarations of functions included in this code module:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
MSG msg;
bool bvRetVal;
HACCEL hAccelTable;
nCmdShow=SW_MAXIMIZE;
HtmlHelp(NULL,NULL,HH_INITIALIZE,(DWORD)&dwCookie) ;
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_HELPSYSFINALWINAPP, szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hInstance);
// Perform application initialization:
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
// msg.hwnd=HwndDlg;
//hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_HELPSYSFINALWINAPP);
while (GetMessage (&msg, NULL, 0, 0)) //Retrieve a message from the
{
//calling thread's message queue
if (!HtmlHelp (
NULL,
NULL,
HH_PRETRANSLATEMESSAGE,
(unsigned long)&msg))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
}
HtmlHelp(NULL, NULL, HH_UNINITIALIZE, (DWORD)dwCookie) ;
return msg.wParam;
}
////////////////////////////////////////////////////////////////////////////////////////
//
// FUNCTION: MyRegisterClass()
//
// PURPOSE: Registers the window class.
//
// COMMENTS:
//
// This function and its usage is only necessary if you want this code
// to be compatible with Win32 systems prior to the 'RegisterClassEx'
// function that was added to Windows 95. It is important to call this function
// so that the application will get 'well formed' small icons associated
// with it.
///////////////////////////////////////////////////////////////////////////////////////
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_HELPSYSFINALWINAPP);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = (LPCSTR)IDC_HELPSYSFINALWINAPP;
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);
return RegisterClassEx(&wcex);
}
///////////////////////////////////////////////////////////////////////////
// FUNCTION: InitInstance(HANDLE, int)
//
// PURPOSE: Saves instance handle and creates main window
//
// COMMENTS:
//
// In this function, we save the instance handle in a global variable and
// create and display the main program window.
////////////////////////////////////////////////////////////////////////////
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
LPCSTR pszFile = "C:\\Langref.chm";
LPCSTR pszWin = "C:\\Langref.chm>test";
// get the wintype
HH_WINTYPE m_hhWinType;
hInst = hInstance; // Store instance handle in our global variable
HwndDlg=GetDesktopWindow();
ZeroMemory(&m_hhWinType, sizeof(HH_WINTYPE));
//HtmlHelp(HwndDlg, pszWin, HH_GET_WIN_TYPE, (DWORD) &pwt);
// copy contents of returned wintype
//m_hhWinTyp = *pwt;
m_hhWinType.hwndCaller=HwndDlg;
m_hhWinType.fsWinProperties = HHWIN_PROP_TRI_PANE |
HHWIN_PROP_AUTO_SYNC|HHWIN_PROP_TRACKING |HHWIN_PROP_ONTOP|HHWIN_PROP_NODEF_STYLES;
m_hhWinType.fsToolBarFlags = HHWIN_BUTTON_BACK |
HHWIN_BUTTON_HOME | HHWIN_BUTTON_FORWARD |
HHWIN_BUTTON_EXPAND;
// Indicate which fields in structure are valid.
m_hhWinType.fsValidMembers = HHWIN_PARAM_STYLES |
HHWIN_PARAM_PROPERTIES | HHWIN_PARAM_RECT |
HHWIN_PARAM_TB_FLAGS | HHWIN_PARAM_NAV_WIDTH |
HHWIN_PARAM_SHOWSTATE | HHWIN_PARAM_TABPOS |
HHWIN_PARAM_CUR_TAB|HHWIN_PROP_POST_QUIT;
m_hhWinType.iNavWidth = 175;
// Initial display state:
// NOTE: fsValidMembers - HHWIN_PARAM_SHOWSTATE must be set.
m_hhWinType.nShowState = SW_RESTORE;
// TOC should be activated.
// NOTE: fsValidMembers - HHWIN PARAM_CUR_TAB must be set.
m_hhWinType.curNavType = HHWIN_NAVTYPE_TOC;
// Tabs on top.
// NOTE: fsValidMembers - HHWIN_PARAM_TABPOS must be set.
m_hhWinType.tabpos = HHWIN_NAVTAB_TOP;
m_hhWinType.pszCaption= "TEST";
// set notification id
m_hhWinType.idNotify = ID_NOTIFICATION;
// rememeber to force the correct size
m_hhWinType.pszType = "test";
m_hhWinType.hwndHelp =HwndDlg;
// now send the new window type
HtmlHelp(HwndDlg, pszFile, HH_SET_WIN_TYPE, (DWORD) &m_hhWinType);
HtmlHelp(HwndDlg,"C:\\Langref.chm>test",HH_HELP_CONTEXT,5223);
if (HwndDlg==NULL) {
printf("Failed to open the Help file\n");
};
if (!HwndDlg)
{
return FALSE;
}
//ShowWindow(hWnd, nCmdShow);
//UpdateWindow(hWnd);
return TRUE;
}
///////////////////////////////////////////////////////////////////
// FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
// PURPOSE: Processes messages for the main window.
//
// WM_COMMAND - process the application menu
// WM_PAINT - Paint the main window
// WM_DESTROY - post a quit message and return
//
//////////////////////////////////////////////////////////////////
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
TCHAR szHello[MAX_LOADSTRING];
LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: Add any drawing code here...
RECT rt;
GetClientRect(hWnd, &rt);
DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
/////////////////////////////////////////////////////////////////////////
// Mesage handler for about box.
/////////////////////////////////////////////////////////////////////////
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
////////////////////////////////////////////////////////////////////////
// helpwinapp.cpp : Defines the entry point for the application.
///////////////////////////////////////////////////////////////////////
naag
|
|
|
|
|
Hi there,
I output 2 data structs into one file. I need to swap the data in that file. Would I need to create a new struct that is comprised of those two structs, store it, swap the bytes and dump it back into the file? The file contains chars and unsigned shorts.
Thanks!
|
|
|
|
|