|
Ah, my bad, you are right in all three cases: in the first functions the assignments don't change the reference, only the value they reference. So these examples were not valid for the purpose I wanted to demonstrate. Also, when I tried to compile GetBlah1() I got the warning warning C4227: anachronism used : qualifiers on reference are ignored. This leads me to believe that it is not actually possible to pass a parameter by const reference, and the rightmost const in the signature is ignored, therefore b is not const and may be modified. I wasn't aware of that restriction before.
The function call to GetBlah4() doesn't work because it tries to assign the (const) return value to a non-const variable. Add a const at the start of the line and it should work.
|
|
|
|
|
In the case of pointers, the following 2 lines are the same, where the contents cannot be changed while the pointer can be made to point to another object.
const Blah* p = GetMyBlahPtr();
Blah const* p = GetMyBlahPtr();
Whereas in the following line, the contents can be changed, but the pointer itself cannot be pointed to another object.
Blah* const p = GetMyBlahPtr();
|
|
|
|
|
I can do this in my code
PostMessage(WM_KEYDOWN);
The message gets properly intercepted, no problem.
I need to detect right arrow so I add wParam like this
PostMessage(WM_KEYDOWN,VK_RIGHT,0);
The message is nowhere to be found.
WindowProc does not even detects WM_KEYDOWN.
All this in MFC.
What am I missing?
Thanks for your help.
|
|
|
|
|
You may need to add some detail in your LPARAM variable as described here[^]. Also check the status returned from your PostMessage() call.
|
|
|
|
|
|
I have changed to SendMessage and get expected results.
Also adding GetLastError processing AFTER the PostMessage I get expected results.
Can anybody explain why is this happening?
Especialy when it works when only WM_KEYDOWN is used without the wParam.
The lParam should specify number of repeats of the keyboard, right arrow in my case and should be 0.
I am not using any other language, only US English.
|
|
|
|
|
I just dropped the following code into a program to test the interpretation of "Specifies the repeat count. The value is the number of times the keystroke is repeated as a result of the user holding down the key."
case WM_KEYDOWN:
sprintf(szText, "repeat count = %d", lParam & 0xFF);
MessageBox(NULL, szText, "Guess What?", MB_OK|MB_ICONQUESTION);
return 1;
While I agree with your interpretation, the message box says that the repeat count is 1.
I'd suppose that when you send WM_KEYDOWN without the wParam, the helper-function that you're calling sets up an appropriate one before calling the 'real' SendMessage, as defined by:
LRESULT SendMessage(
HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );
?
|
|
|
|
|
RecordsetPtr rsUrun;
rsUrun.CreateInstance(__uuidof(Recordset));
try{
_variant_t Holder;
CString cQry=_T("");
CString cTmp=_T("");
_stUrun stTmp;
vUrun.clear();
cQry=_T("Select * From urun order by adi");
rsUrun->Open(_variant_t(cQry),AdoTest.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
CStringArray caTmp;
int nPs=0;
while(!rsUrun->adoEOF)
{
stTmp.cUrunAd=_T("");
stTmp.dBirimf=0;
stTmp.nDBID=0;
Holder = rsUrun->GetCollect("urunid"); if(Holder.vt!=VT_NULL) stTmp.nDBID=atoi((char*)_bstr_t(Holder));
Holder = rsUrun->GetCollect("adi"); if(Holder.vt!=VT_NULL) stTmp.cUrunAd=(char*)_bstr_t(Holder);
Holder = rsUrun->GetCollect("birimf"); if(Holder.vt!=VT_NULL) stTmp.dBirimf=atof((char*)_bstr_t(Holder));
vUrun.push_back(stTmp);
CString adi = rsUrun->GetCollect("adi");
listbo1.AddString(_T(adi));
int gfujf = listbo1.GetItemData(listbo1.GetCount()-1);
rsUrun->MoveNext();
SO here is the code, could you please help me on how can I get the listbox item's id in order to use it in an update query?? Here is my button below, I did some work on it but seems no good
void CTestADSSQLDlg::OnBnClickedButton1()
{
_RecordsetPtr rsUrun;
rsUrun.CreateInstance(__uuidof(Recordset));
CString cQry=_T("Update urun set adi='%s' where urunid='%d'", editbo1;
rsUrun->Open(_variant_t(cQry),AdoTest.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
|
|
|
|
|
symeramon wrote: CString cQry=_T("Update urun set adi='%s' where urunid='%d'", editbo1;
Seems a parenthesis has gone AWOL.
symeramon wrote: SO here is the code, could you please help me on how can I get the listbox item's id...
Umm, since you are using MFC, why not just assign it a CListBox member variable? Use ClassWizard (or equivalent).
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
Thanks David, at least you answered my question... But the main problem is how can I get the id from vector to use it in the button click event?
|
|
|
|
|
symeramon wrote: But the main problem is how can I get the id from vector...
What does a vector have to do with any of this?
symeramon wrote: ...use it in the button click event?
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
ON_BN_CLICKED(IDC_SOME_BUTTON, OnButtonClicked)
END_MESSAGE_MAP()
...
void CMyDialog::OnButtonClicked()
{
m_listbox.AddString(_T("Hello World!"));
}
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
Thanks for your reply David... Finally I got it, by SetItemData!
|
|
|
|
|
1, Window Design
2, Skining the Dialog
3, Other plug in usage
if any one have answers with simple snippets please refer me.
|
|
|
|
|
Are you trying to ask how its used? MFC is basically an objected oriented layer around the WinAPI, but it's not just that, it provides a framework for development. As a framework, it provides base abstraction layers for creating objects, windows, threads, lists, arrays, strings, controls, and many more objects common in desktop development.
|
|
|
|
|
Albert Holguin wrote: basically an objected oriented layer
Emphasis mine: Personally I always considered MFC (any version) to be version 1.0.x of Microsofts attempt to make an object oriented layer. Even the most recent versions still contain way too much remnants of C-style programming to be rightfully called 'object oriented'. To just name one example (or two): the WPARAM and LPARAM parameters widely used in functions all over the API are IMNSHO an abomination all by themselves. Or the 'type', HANDLE : Try to figure out what that type really is, and you'll find there are quite a few different variants, many of them incompatible with each other (as I've learned the hard way)
My hopes are on Windows 8: maybe Metro will provide the long-awaited 'Windows API 2.0' ...
|
|
|
|
|
|
Do you really need to use bold text for a simple list of links?
|
|
|
|
|
LOL.. i like to be dramatic. Just to put a little empasis on topics
|
|
|
|
|
I am new into writing C++ providers.
Can anyoone let me know the basics of provider writing.
I mean I wanted to know about Provider types(Instance, Method, Indication) and why are they needed etc
What are properties, mof, cim, schema etc.
|
|
|
|
|
Providers are used to provide dynamic data which are not stored in internal datastore for the CIMOM .
More details[^] can be found in the link.
Also if you could google with "C++ provider" keyword you can get more results and channels to start.
You talk about Being HUMAN. I have it in my name
AnsHUMAN
|
|
|
|
|
Thanks Anshuman I will have a look at the link.
|
|
|
|
|
|
Thanks Topcoder for the links
|
|
|
|
|
Hello Friends
I want to copy an array of Point3 object to Dynamic Array object of Point3.
I am having Point3 verts[1000],which stores point3 for some size ,say 600.
i want to copy to another Point3 object with size of 600.
Like, Point3* tempVerts = new Point3[600]
Thanks In Advance.
Regards
Yogesh
|
|
|
|
|
tempVerts[i] = verts[i]; // i would be a variable incremented each time by 1 in a loop
BTW can you use a vector<point3> rather than allocating an array dynamically if it fits your design?
You talk about Being HUMAN. I have it in my name
AnsHUMAN
|
|
|
|